Mac上MySQL密码忘记了怎么重置找回?

来源:Java编程网作者:印尼程序员头衔:程序员
导读:本期聚焦于小伙伴创作的《Mac上MySQL密码忘记了怎么重置找回?》,敬请观看详情。数据库服务启动后无法用原账户登入,往往是因为本地root口令丢失。在macOS环境中,MySQL多通过官方pkg或Homebrew部署,两者的停止与启动路径不同。重置核心思路是跳过权限表以安全模式启动守护进程,随后用UPDATE语句直接改写mysql库里的用户认证字段。操作前需确认数据目录位置,避免误杀正在运行的实例。若使用Homebrew管理,可借助brew services暂停后台任务;官方版则要在系统偏好面板中手动关停。完成口令变更后,必须刷新权限并正常重启服务,否则新密码不会生效。掌握这套流程能让你在紧急运维时快速恢复访问。

在Mac电脑上部署MySQL后,时间久了很容易碰到root密码遗忘的情况。此时常规的连接方式会直接报错拒绝访问,导致本地开发或测试环境瘫痪。解决这个问题并不需要重装数据库,只要让MySQL以跳过权限校验的方式启动,就能在不输入旧密码的条件下重新设置账户口令。

确认MySQL的安装与运行方式

Mac上的MySQL通常有两种来源:一种是Oracle官方的dmg/pkg安装包,会在系统偏好设置里生成MySQL面板;另一种是通过Homebrew安装的命令行版本。不同来源在停止和启动命令上有所区别,操作前必须先弄清楚自己属于哪一种,否则可能停不掉真正的服务进程。

打开终端执行以下命令,可以查看当前是否有mysqld进程在运行:

ps aux | grep mysqld
# 如果看到 /usr/local/mysql/bin/mysqld 或类似路径,说明官方版在跑
# 如果看到 /opt/homebrew/opt/mysql/bin/mysqld,多为 Homebrew 版

对于官方版本,建议直接在系统偏好里的MySQL图标上点击Stop MySQL Server;对于Homebrew版本,则使用brew services stop mysql来安全地关闭后台服务。务必确认进程完全退出,再进行后续的安全模式启动。

以安全模式跳过权限表启动

MySQL提供了一个--skip-grant-tables参数,使用该参数启动后,服务端不会读取用户权限表,任何用户都能无需密码以最高权限连接。这是找回密码的关键一步,但也要注意在此期间数据库处于无鉴权状态,不要对外网开放端口。

先停用服务,然后用如下命令在终端前台启动安全模式(以官方常见路径为例):

sudo /usr/local/mysql/bin/mysqld_safe --skip-grant-tables --skip-networking &
# --skip-networking 防止远程无密码连入,仅允许本地socket

等待几秒后,新开一个终端窗口,直接输入mysql即可进入交互式命令行,不需要-p参数。此时你看到的提示符证明已经绕过了密码验证。

修改root用户密码

进入MySQL命令行后,需要切换到mysql系统库,并对user表里的认证字段进行更新。在MySQL 5.7及以下版本,密码字段叫password;在MySQL 8.0之后,字段改为authentication_string,且必须使用ALTER USER语句或特定的函数加密。

如果你使用的是MySQL 8.0,推荐执行下面的语句来重置:

FLUSH PRIVILEGES;
ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewPass_2024';
# 将 NewPass_2024 替换成你自己的强密码
FLUSH PRIVILEGES;

若是老版本MySQL 5.6或5.7,可以用UPDATE直接写表:

USE mysql;
UPDATE user SET authentication_string=PASSWORD('NewPass_2024') WHERE User='root';
FLUSH PRIVILEGES;

修改完成后,一定要执行FLUSH PRIVILEGES让权限系统重新加载,不然刚改的密码不会被识别。随后退出命令行,并结束安全模式进程。

正常重启并验证

安全模式只是临时手段,改完密码必须回到普通模式运行。先通过终端把mysqld_safe进程结束:

mysqladmin shutdown
# 若提示无权限,用 sudo kill 掉对应 pid

然后按原来的管理方式重新启动服务:官方版在系统偏好面板点Start,Homebrew版执行brew services start mysql。启动后使用新密码连接测试:

mysql -u root -p
# 输入刚设置的 NewPass_2024,能进说明找回成功

整个流程不需要删除数据文件,也不会影响已有业务库。只要注意安全模式别暴露到网络,以及在改密后正常重启,就能在Mac上稳定地解决MySQL密码忘记的问题。

常见误区与补充

有人会直接删掉data目录强行初始化,这样虽然能重设密码,但原有库表全部丢失,开发环境尚可,生产绝对禁止。还有人改完密码不执行FLUSH PRIVILEGES,结果重启前用新密码连不上,误以为失败。另外,若之前配置过my.cnf里绑定了skip-grant-tables,记得改完密码后把它注释掉,否则每次启动还是无密码模式,存在严重安全隐患。

对于使用Docker跑MySQL的Mac用户,上述本机进程操作不适用,应当用docker exec进入容器后执行同样的SQL改密逻辑,或挂载初始化脚本。理清部署形态,才能选对重置路径。

MySQL密码重置Mac修改时间:2026-08-04 01:21:33

免责声明:​ 已尽一切努力确保本网站所含信息的准确性。网站内容多为原创整理与精心编撰,观点力求客观中立。本站旨在免费分享,内容仅供个人学习、研究或参考使用。若引用了第三方作品,版权归原作者所有。如内容涉及您的权益,请联系我们处理。
内容垂直聚焦
专注技术核心技术栏目,确保每篇文章深度聚焦于实用技能。从代码技巧到架构设计,为用户提供无干扰的纯技术知识沉淀,精准满足专业提升需求。
知识结构清晰
覆盖从开发到部署的全链路。AI、前端、编程、数据库、服务器、建站、系统层层递进,构建清晰学习路径,帮助用户系统化掌握开发与运维所需的核心技术。
深度技术解析
拒绝泛泛而谈,深入技术细节与实践难点。无论是数据库优化还是服务器配置,均结合真实场景与代码示例进行剖析,致力于提供可直接应用于工作的解决方案。
专业领域覆盖
精准对应开发生命周期。从前端界面到后端编程,从数据库操作到服务器运维,形成完整闭环,一站式满足全栈工程师和运维人员的技术需求。
即学即用高效
内容强调实操性,步骤清晰、代码完整。用户可根据教程直接复现和应用于自身项目,显著缩短从学习到实践的距离,快速解决开发中的具体问题。
持续更新保障
专注既定技术方向进行长期、稳定的内容输出。确保各栏目技术文章持续更新迭代,紧跟主流技术发展趋势,为用户提供经久不衰的学习价值。