Linux下MySQL密码重置全攻略
在Linux系统中重置MySQL密码,最直接的方法是先停止MySQL服务,然后以跳过权限验证的方式启动,再通过SQL命令更新密码,以下是详细步骤及注意事项,适用于常见发行版如Ubuntu、CentOS等。

第一步:停止MySQL服务
首先确保MySQL服务已停止,避免权限冲突,执行以下命令(根据系统管理工具选择):
- 使用systemctl(现代Linux发行版):
sudo systemctl stop mysql # 或针对MariaDB: sudo systemctl stop mariadb
- 使用service(旧版系统):
sudo service mysql stop
第二步:以跳过权限验证模式启动MySQL
此步骤允许无需密码即可登录数据库,但需注意安全风险(操作后务必恢复常规模式)。
sudo mysqld_safe --skip-grant-tables &
或使用MySQL守护进程直接启动:
sudo mysqld --skip-grant-tables --skip-networking &
--skip-networking参数可防止远程连接,增强临时操作的安全性。
第三步:登录MySQL并更新密码
- 打开新终端窗口,无密码登录MySQL:
mysql -u root
- 执行密码重置命令(注意MySQL版本差异):
- MySQL 5.7.6及以上版本或MariaDB 10.4及以上:
ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';
- MySQL 5.7.5及以下版本:
UPDATE mysql.user SET authentication_string=PASSWORD('新密码') WHERE User='root';
- MySQL 5.7.6及以上版本或MariaDB 10.4及以上:
- 刷新权限使更改生效:
FLUSH PRIVILEGES;
- 退出MySQL:
EXIT;
第四步:恢复MySQL正常服务
- 结束跳过权限验证的MySQL进程:
sudo killall mysqld # 或根据进程ID结束 sudo kill [进程ID]
- 正常启动MySQL服务:
sudo systemctl start mysql
- 使用新密码登录验证:
mysql -u root -p
关键注意事项
- 安全警告:
--skip-grant-tables模式会暂时禁用权限验证,操作期间应确保系统无网络访问或立即完成重置。 - 密码策略:若MySQL启用了密码强度验证,需设置符合规则的密码(如包含大小写字母、数字、特殊字符)。
- 用户主机限制:如果需重置远程用户密码(如
'root'@'%'),请在SQL命令中指定对应主机名。 - 配置文件备份:操作前建议备份
/etc/mysql/my.cnf或/etc/my.cnf,避免配置错误导致服务异常。 - 系统兼容性:部分旧版MySQL可能需重启系统服务而非直接结束进程,请根据实际情况调整。
通过以上步骤,可高效解决Linux下MySQL密码遗忘或过期问题,若仍无法登录,可检查错误日志(/var/log/mysql/error.log)排查权限或配置故障。
未经允许不得转载! 作者:HTML前端知识网,转载或复制请以超链接形式并注明出处HTML前端知识网。
原文地址:https://www.html4.cn/13649.html发布于:2026-08-28





