我用的是官方安装包安装的,但是服务无法启动。
删除MySQL Server 8.0\data下的所有文件
# 强力清理 - 以管理员身份运行
taskkill /F /IM mysqld.exe
taskkill /F /IM mysql.exe
# 切换到其他目录再删除
cd C:\
rmdir /S /Q "C:\Program Files\MySQL\MySQL Server 8.0\data"
mkdir "C:\Program Files\MySQL\MySQL Server 8.0\data"初始化Mysql,记下临时生成的密码!
cd "C:\Program Files\MySQL\MySQL Server 8.0\bin"
mysqld --initialize --console临时密码在类似这这种日志:
2025-11-15T05:32:15.726638Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: 9W,SyMIes4OA启动服务,修改密码
# 使用临时密码登录
mysql -u root -p
# 在 MySQL 中执行:
ALTER USER 'root'@'localhost' IDENTIFIED BY '你的新密码';
FLUSH PRIVILEGES;
EXIT;还有客户端连接认证协议不兼容 的问题。MySQL 8.0 使用了新的默认认证插件 caching_sha2_password,但很多客户端还不支持。
首先
-- 查看当前认证插件
SELECT user, host, plugin FROM mysql.user WHERE user = 'root';
-- 修改为旧的 mysql_native_password 插件
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的密码';
FLUSH PRIVILEGES;
-- 如果有其他 root 用户,也修改
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '你的密码';
FLUSH PRIVILEGES;可选新建用户也修改
-- 创建新用户使用旧认证方式
CREATE USER 'admin'@'%' IDENTIFIED WITH mysql_native_password BY '你的密码';
GRANT ALL PRIVILEGES ON *.* TO 'admin'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;也可以修改my.ini配置文件
[mysqld]
default_authentication_plugin=mysql_native_password无法建立数据库的问题
-- 1. 修改 root 用户认证方式和密码
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的密码';
-- 2. 授予所有权限
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION;
-- 3. 刷新权限
FLUSH PRIVILEGES;MySQL 8.0 默认使用严格的 SQL 模式,不允许 0000-00-00 00:00:00 这样的无效日期。出现导入sql文件错误信息
-- 查看当前 SQL 模式
SELECT @@sql_mode;
-- 修改 SQL 模式,移除 NO_ZERO_DATE 和 NO_ZERO_IN_DATE
SET GLOBAL sql_mode = 'ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION';
此处评论已关闭