mysql 8.0+ 初始化后root密码为空或认证方式不匹配,需先确认auth_socket或临时密码,再用--skip-grant-tables重置密码,并强制设置caching_sha2_password插件、限制bind_address和root登录host。

MySQL 8.0+ 初始化后 root 密码为空?用 mysql_secure_installation 不起作用
MySQL 8.0+ 安装后默认使用 caching_sha2_password 插件,且 root 用户可能被设为 auth_socket 或空密码(取决于安装方式)。直接执行 mysql -u root -p 常报 Access denied,不是密码错了,而是认证方式不匹配。
- Debian/Ubuntu 的
apt install mysql-server默认禁用密码登录,root 绑定auth_socket,此时mysql_secure_installation会跳过密码设置 - CentOS/RHEL 的
yum/dnf install mysql-server可能生成临时密码,记录在/var/log/mysqld.log中,关键词是A temporary password is generated - 若已用
mysql_secure_installation却没改密码,大概率是因为它检测到 root 已有认证方式(如 socket),就跳过了密码步骤
绕过验证重置 root 密码:停服务 + --skip-grant-tables
这是最可靠、跨平台的兜底方法,适用于所有 MySQL 版本,但需有服务器 root 权限。
系统易学易懂,用户只需会上网、不需学习编程及任何语言,只要使用该系统平台,只要会打字,即可在线直接完成建站所有工作。本程序适合不懂php环境配置的新手用来在本机调试智能SiteSEO网站优化软件,安装过程极其简单。您的网站地址:http://localhost您的网站后台:登录地址: http://localhost/admin.php密 码: admin服务器套件所包含的软件:nginx-0.7
- 先停服务:
sudo systemctl stop mysql(或mysqld,依系统而定) - 手动启动 mysqld 并跳过权限检查:
sudo mysqld --skip-grant-tables --skip-networking &(--skip-networking防止远程未授权访问) - 另开终端连入:
mysql -u root(此时无需密码) - 刷新权限并重设密码(注意语法):
FLUSH PRIVILEGES; ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY '你的强密码';
- 退出,杀掉 mysqld 进程,再用
systemctl start mysql正常启服务
设置完成后必须改的三个安全项
仅设密码远远不够。MySQL 默认配置对生产环境极不友好,以下三项不改,等于裸奔。
-
bind_address:检查/etc/mysql/mysql.conf.d/mysqld.cnf(Ubuntu)或/etc/my.cnf(CentOS),确保bind_address = 127.0.0.1,禁止监听公网(0.0.0.0是高危配置) - 删除匿名用户:
DROP USER ''@'localhost'; - 限制 root 登录范围:
RENAME USER 'root'@'%' TO 'root'@'127.0.0.1';(避免 root 能从任意 IP 登录;如需远程管理,应新建专用用户并限制 IP 和权限)
验证是否真生效:用新密码连、检查插件、查 host
别只信自己敲了命令。实际连一次,看底层到底认不认。
- 执行:
mysql -u root -p -h 127.0.0.1(强制走 TCP,避开 socket 认证歧义) - 成功登录后查:
SELECT user, host, plugin FROM mysql.user WHERE user = 'root';—— 确认plugin是caching_sha2_password(非auth_socket),且host是127.0.0.1或localhost - 再试:
mysql -u root -p -h localhost—— 若失败但上一条成功,说明localhost走的是 socket,需额外运行ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY '密码';
host 字段残留 %,或者 plugin 没切过去,导致应用连不上或安全策略形同虚设。









