Linux MySQL忘记root密码

MySQL是一种常用的关系型数据库管理系统,广泛用于许多Web应用程序和服务器端开发。在使用MySQL时,我们通常会设置一个root账户来管理数据库。但是有时候,我们可能会忘记root账户的密码,这可能会带来一些麻烦。本文将介绍一种在Linux系统中重置MySQL root密码的方法。

方法一:使用mysqld_safe启动MySQL

这种方法适用于你能够以root用户身份登录到Linux系统并且知道MySQL安装目录的情况下。

  1. 首先,使用root用户登录到Linux系统。

  2. 打开终端并停止MySQL服务。使用以下命令可以停止MySQL服务:

sudo systemctl stop mysql
  1. 接下来,使用以下命令以跳过认证方式启动MySQL服务:
sudo mysqld_safe --skip-grant-tables &
  1. 现在你可以使用以下命令以root用户身份连接到MySQL服务:
mysql -u root
  1. 连接成功后,你可以使用以下命令设置新的root密码:
UPDATE mysql.user SET authentication_string=PASSWORD('new_password') WHERE User='root';

请将new_password替换为你想要设置的新密码。

  1. 在更新完root密码后,使用以下命令刷新权限:
FLUSH PRIVILEGES;
  1. 最后,使用以下命令退出MySQL服务:
EXIT;
  1. 现在,你可以使用新密码以root用户身份登录到MySQL服务了。

方法二:使用--init-file选项启动MySQL

这种方法适用于你没有root权限或者无法停止MySQL服务的情况下。

  1. 首先,创建一个包含以下内容的初始化文件(例如reset.sql):
ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';

请将new_password替换为你想要设置的新密码。

  1. 将初始化文件的路径保存在一个临时文件中(例如reset.txt):
echo "ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';" > reset.txt
  1. 使用以下命令以--init-file选项启动MySQL服务:
sudo mysqld_safe --init-file=$(pwd)/reset.txt &

请确保在命令中使用了正确的路径。

  1. 现在,你可以使用新密码以root用户身份登录到MySQL服务了。

总结

忘记MySQL root密码可能会给我们带来一些麻烦,但是在Linux系统中,我们可以使用mysqld_safe启动MySQL并以root用户身份连接到MySQL服务来重置密码。如果我们没有root权限或者无法停止MySQL服务,我们可以使用--init-file选项来启动MySQL并设置新密码。无论使用哪种方法,都可以帮助我们恢复对MySQL数据库的访问权限。

希望本文能够帮助你解决MySQL root密码忘记的问题,使你能够继续使用MySQL服务。