超实用!MySQL密码修改全流程(附不同场景操作)
一、前言
日常开发/运维中,经常会遇到需要修改MySQL密码的场景(比如密码泄露、定期更换、忘记密码等),本文整理了不同场景下MySQL密码修改的完整步骤,涵盖常规修改、忘记root密码重置等核心场景,步骤可直接复用,方便后续查阅。
二、前置准备
- 确保已安装MySQL,且能通过终端/命令行访问MySQL服务
- 操作前建议备份MySQL数据(可选,但重要环境必做)
- 具备对应权限:常规修改需要
UPDATE权限,重置root密码需要服务器管理员权限
三、场景1:知道原密码,常规修改(最常用)
3.1 方式1:使用ALTER USER命令(MySQL 8.0+推荐)
MySQL 8.0及以上版本推荐使用此方式,语法更规范:
1 | |
3.2 方式 2:使用 SET PASSWORD 命令(兼容低版本)
适用于 MySQL 5.7 及以下版本,也兼容 8.0:
1 | |
四、场景 2:忘记 root 密码,重置密码(紧急场景)
如果忘记 root 密码,需要通过跳过权限验证的方式重置,步骤如下(以 Linux 系统为例):
4.1 步骤 1:停止 MySQL 服务
1 | |
4.2 步骤 2:跳过权限验证启动 MySQL
1 | |
4.3 步骤 3:免密码登录并修改密码
1 | |
4.4 步骤 4:恢复正常启动并验证
1 | |
五、注意事项
密码复杂度:生产环境建议设置复杂密码(字母 + 数字 + 特殊符号),避免简单密码被破解
远程用户:如果需要修改远程登录的用户密码,将
localhost改为%(允许所有 IP)或指定 IPMySQL 8.0 变化:8.0 移除了
1
PASSWORD()函数,且默认认证插件为
1
caching_sha2_password,低版本客户端可能兼容问题,可临时改为
1
mysql_native_password1
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密码';权限问题:修改后如果登录失败,检查用户的
Host字段是否匹配(比如远程登录用root@%,本地用root@localhost)
六、总结
本文覆盖了 MySQL 密码修改的两大核心场景:
知道原密码:优先用
ALTER USER(8.0+)或SET PASSWORD(低版本)忘记密码:通过
1
--skip-grant-tables跳过权限验证后重置
操作时注意区分 MySQL 版本,修改后务必刷新权限,生产环境做好密码安全管控
超实用!MySQL密码修改全流程(附不同场景操作)
https://blog.runner8.dpdns.org/2026/03/16/change-mysql-password/