You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MySQL 8.0.13 root密码无法重置及认证失败求助

解决Homebrew安装的MySQL 8.0.13 root密码重置失败问题

别担心,我之前也踩过Homebrew装MySQL 8.x的权限坑,给你一套亲测有效的解决步骤:

步骤1:彻底停止MySQL服务

先确保所有MySQL进程都停干净,避免后续启动冲突:

brew services stop mysql
# 如果上面命令没生效,强制杀掉进程
sudo pkill mysqld

步骤2:以安全模式启动MySQL(跳过权限表)

注意不要用mysql.server start --skip-grant-tables,Homebrew的启动脚本不支持这么传参数,直接用mysqld_safe启动:

sudo mysqld_safe --skip-grant-tables --skip-networking &

加--skip-networking是防止重置过程中被外部连接干扰,更安全。

步骤3:无密码登录MySQL

此时不需要密码就能直接进入MySQL控制台:

mysql -u root

步骤4:重置root用户的认证信息

MySQL 8.0默认用caching_sha2_password插件,这可能是你之前认证失败的核心原因之一。先切换到系统库,更新用户表:

USE mysql;
-- 清空密码字段,切换为兼容性更好的mysql_native_password插件
UPDATE user SET authentication_string = NULL, plugin = 'mysql_native_password' WHERE User = 'root' AND Host = 'localhost';
-- 刷新权限,让临时权限系统生效
FLUSH PRIVILEGES;

步骤5:设置新的root密码

现在就可以正常修改密码了,把YourNewSecurePassword替换成你想要的密码:

ALTER USER 'root'@'localhost' IDENTIFIED BY 'YourNewSecurePassword';

步骤6:恢复正常启动

退出MySQL,停止安全模式进程,再正常启动服务:

exit
sudo pkill mysqld
brew services start mysql

验证登录

用新密码试试登录:

mysql -u root -p

输入你刚设置的密码,应该就能成功进入MySQL了。

为什么之前的操作失败?

你之前直接在--skip-grant-tables模式下执行ALTER USER报错,是因为MySQL跳过权限表时,权限系统处于完全禁用状态,无法执行用户修改操作。必须先更新系统表并刷新权限,让权限系统临时恢复,才能修改密码。另外MySQL 8.0的认证插件变化,也可能导致你之前设置的密码无法正常匹配认证规则。

内容的提问来源于stack exchange,提问作者awoodrum87

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.11 08:45:22