mac上mysql root密码丢失的三种解决方案:dmg安装需立即保存临时密码并重置;homebrew安装可无密码登录但须切换认证插件;彻底遗忘时可用init-file或skip-grant-tables安全模式重置。

Mac上装完MySQL却连不上root账户,要么是初始密码没保存、要么是改过之后彻底忘了,甚至出现Access denied提示却死活试不对——这不是配置问题,是安装路径、版本机制和权限模型三者没对齐。
DMG安装后立刻设置初始密码
这是官网安装包最常踩的坑:临时密码只显示一次,关掉窗口就再也找不回来。
第一步:安装完成后,系统会弹出一个带【Temporary password for root@localhost】的窗口,里面是一串32位随机字符,立即复制到备忘录或密码管理器,关掉就没了。
第二步:打开“系统偏好设置”→点击底部MySQL图标→确认状态为Running;如果不是,点“Start MySQL Server”启动服务。
第三步:终端执行:/usr/local/mysql/bin/mysql -u root -p,粘贴刚才保存的临时密码登录。
第四步:必须立刻重置密码,否则下次登录直接被拒绝——MySQL 8.0+默认启用密码过期策略:ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass123!';
第五步:执行FLUSH PRIVILEGES;让权限立即生效,然后退出:EXIT;
Homebrew安装跳过临时密码烦恼
适合开发环境快速搭环境,不记密码、不弹窗、不焦虑。
运行brew install mysql完成安装后,直接执行brew services start mysql启动服务。
此时可无密码登录:mysql -u root(注意不加-p参数)。
登录后第一件事不是建库,而是强制切换认证插件,否则Navicat、DBeaver等工具连不上:ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'YourSecurePass2026!';
【这一步不能省,否则客户端报错Public Key Retrieval is not allowed】
最后执行FLUSH PRIVILEGES;并退出。
彻底忘记root密码时的安全模式重置
方法一:用init-file方式(推荐,稳定不崩)
新建文本文件mysql-init.sql,内容只写一行:ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewPass2026!';(MySQL 8.0+)。
停止服务:sudo /usr/local/mysql/support-files/mysql.server stop。
用初始化文件启动MySQL:sudo mysqld --init-file=/path/to/mysql-init.sql --console(把/path/to替换成你的真实路径)。
看到控制台输出mysqld: ready for connections后,按Ctrl+C中断进程,再正常启动:sudo /usr/local/mysql/support-files/mysql.server start。
方法二:跳过权限表直连修改(需开两个终端)
先停服务:brew services stop mysql或sudo /usr/local/mysql/support-files/mysql.server stop。
在第一个终端执行:sudo mysqld_safe --skip-grant-tables &,等待提示mysqld_safe Starting mysqld daemon。
立刻新开第二个终端,执行:mysql -u root(不输密码)。
进入后依次执行:USE mysql; → ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewPass2026!'; → FLUSH PRIVILEGES; → EXIT;
回到第一个终端,用killall mysqld终止进程,再执行brew services start mysql或sudo /usr/local/mysql/support-files/mysql.server start。
最后验证:mysql -u root -p,输入新密码,能进即成功。











