Mac终端修改MySQL root密码需先停服并以--skip-grant-tables模式启动:系统设置停MySQL或brew services stop mysql;sudo mysqld_safe --skip-grant-tables &;新窗口mysql -u root,执行FLUSH PRIVILEGES;,再按版本用ALTER USER(8.0+)或SET PASSWORD(5.7-)设新密码;最后exit,Ctrl+C终止进程,重启服务。

Mac终端修改MySQL的root密码需绕过权限验证机制,否则会因当前密码未知而被拒绝访问;直接执行ALTER USER或SET PASSWORD命令将触发Access denied错误,必须先停掉服务并以--skip-grant-tables模式启动才能进入可写权限状态。
停止正在运行的MySQL服务
打开系统设置 → 滚动到底部点击MySQL图标 → 点击“Stop MySQL Server”按钮,等待状态指示灯变为红色。这一步必须完成,否则后续跳过权限表的操作会被正在运行的mysqld进程拒绝。
【关键前提】 如果系统设置中找不到MySQL图标,说明你使用Homebrew安装,路径为/opt/homebrew/opt/mysql/bin,请改用brew services stop mysql命令停止服务。
以跳过权限检查方式启动MySQL
打开终端,执行以下命令:
sudo /usr/local/mysql/bin/mysqld_safe --skip-grant-tables &
执行后终端会持续输出日志且光标不返回,代表安全模式已后台运行。此时不要关闭该窗口——这是后续操作能生效的基础。若提示command not found,请先确认MySQL安装路径,Homebrew用户应改用sudo /opt/homebrew/opt/mysql/bin/mysqld_safe --skip-grant-tables &。
连接数据库并重置密码
按下 Command + N 新建一个终端窗口,然后按顺序执行以下三步:
第一步:/usr/local/mysql/bin/mysql -u root(无需密码,直接回车)
第二步:输入FLUSH PRIVILEGES; —— 这一步不可省略,否则ALTER USER语句会报错Unknown system variable 'password'
第三步:根据你的MySQL版本选择对应指令:
方法一(MySQL 8.0+):ALTER USER 'root'@'localhost' IDENTIFIED BY '你的新密码';
方法二(MySQL 5.7及更早):SET PASSWORD FOR 'root'@'localhost' = PASSWORD('你的新密码');
注意:MySQL 8.0不再支持PASSWORD()函数,强行使用会触发语法错误ERROR 1064;新密码必须含大小写字母、数字和特殊字符,否则ALTER USER可能静默失败。
退出并重启正式服务
在MySQL命令行中输入exit;退出。
回到第一个终端窗口,按 Control + C 中断mysqld_safe进程。
最后执行:sudo /usr/local/mysql/support-files/mysql.server start
Homebrew用户请改用:brew services start mysql


















