作者信息:https://home.cnblogs.com/u/huangjiabobk

在运维工作中,MySQL忘记root密码如何找回?

在运维工作中,如果忘记了 MySQL 的 root 密码,可以通过以下几种方法进行重置。以下是详细的操作步骤:

1. 使用 --skip-grant-tables 选项
  1. 停止 MySQL 服务

    sudo systemctl stop mysql
    

    或者在较旧的系统中使用:

    sudo service mysql stop
    
  2. 以安全模式启动 MySQL

    sudo mysqld_safe --skip-grant-tables &
    
  3. 登录 MySQL

    mysql -u root
    
  4. 重置密码

    • 如果是 MySQL 5.7.6 以下版本:

      USE mysql;
      UPDATE user SET authentication_string=PASSWORD('new_password') WHERE User='root';
      FLUSH PRIVILEGES;
      
    • 如果是 MySQL 5.7.6 及以上版本:

      ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';
      FLUSH PRIVILEGES;
      
  5. 退出 MySQL

    exit
    
  6. 重启 MySQL 服务

    sudo systemctl start mysql
    

    或者:

    sudo service mysql start
    
  7. 验证新密码

    mysql -u root -p
    

    输入新密码,验证是否可以成功登录。

2. 使用 --init-file 选项
  1. 创建一个包含重置密码命令的文件

    echo "ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password'; FLUSH PRIVILEGES;" > /tmp/init.sql
    
  2. 停止 MySQL 服务

    sudo systemctl stop mysql
    
  3. 以安全模式启动 MySQL,并使用 --init-file 选项

    sudo mysqld_safe --init-file=/tmp/init.sql &
    
  4. 等待 MySQL 服务启动并执行重置密码命令

  5. 重启 MySQL 服务

    sudo systemctl start mysql
    
  6. 验证新密码

    mysql -u root -p
    

    输入新密码,验证是否可以成功登录。

3. 使用 mysqladmin 命令(适用于知道原密码的情况)
  1. 登录到 MySQL 服务器所在的操作系统终端

  2. 执行命令

    mysqladmin -u root -p -h 127.0.0.1 -P 3306 password 'new_password'
    

    执行命令后会提示输入原密码,输入原密码后即可修改为新密码。

4. 注意事项
  • 在执行上述操作时,请确保你有足够的权限来停止和启动 MySQL 服务。
  • 在重置密码之前,建议备份你的数据库,以防万一。
  • 如果你使用的是 MySQL 5.7.6 及以上版本,建议使用 ALTER USER 命令来重置密码。
  • 如果你使用的是 MariaDB(MySQL 的一个分支),步骤可能略有不同。

综上所述,通过以上方法,你可以轻松找回并重置 MySQL 的 root 密码。

posted @ 2025-03-28 23:47  黄嘉波  阅读(104)  评论(0)    收藏  举报
版权声明:原创作品,谢绝转载!否则将追究法律责任。--作者 黄嘉波