Linux下MySQL密码重置全攻略

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

linux下mysql如何重置,Linux下MySQL重置全攻略

第一步:停止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并更新密码

  1. 打开新终端窗口,无密码登录MySQL:
    mysql -u root
  2. 执行密码重置命令(注意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';
  3. 刷新权限使更改生效:
    FLUSH PRIVILEGES;
  4. 退出MySQL:
    EXIT;

第四步:恢复MySQL正常服务

  1. 结束跳过权限验证的MySQL进程:
    sudo killall mysqld
    # 或根据进程ID结束
    sudo kill [进程ID]
  2. 正常启动MySQL服务:
    sudo systemctl start mysql
  3. 使用新密码登录验证:
    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