mysql忘记密码?三种忘记密码的解决方案

在使用MySQL数据库时,root用户是最高权限的管理员账户。如果您忘记了root用户的密码,那么您将无法登录到MySQL数据库并进行任何管理操作。但是,不要担心,MySQL提供了几种方法来重置root密码,本文将向您介绍其中的几种方法。

 

 

 

方法一:使用mysqladmin重置密码

这种方法适用于您在MySQL服务器上拥有root账户的管理员权限。下面是重置root密码的步骤:

 

停止MySQL服务

$ sudo systemctl stop mysql

使用mysqld_safe命令启动MySQL服务,并跳过权限检查

$ sudo mysqld_safe --skip-grant-tables &

连接到MySQL服务器,并使用mysqladmin命令重置密码

$ mysql -u root

 

mysql> FLUSH PRIVILEGES;

 

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';

这里,'new_password' 是您要设置的新密码,您可以根据需要进行修改。此命令将修改root用户在本地MySQL服务器上的密码。

 

退出MySQL服务器,并停止MySQL服务

mysql> exit

 

$ sudo systemctl stop mysql

启动MySQL服务

$ sudo systemctl start mysql

现在,您可以使用新密码重新登录root用户。

 

方法二:使用mysqld重新设置root密码

这种方法适用于您在MySQL服务器上没有root管理员权限,但您具有物理访问权限。下面是重置root密码的步骤:

 

停止MySQL服务

$ sudo systemctl stop mysql

使用mysqld_safe命令启动MySQL服务,并跳过权限检查

$ sudo mysqld_safe --skip-grant-tables &

连接到MySQL服务器,并创建一个新的临时用户,该用户拥有root权限

$ mysql -u root

 

mysql> FLUSH PRIVILEGES;

 

mysql> CREATE USER 'temp_root'@'localhost' IDENTIFIED BY 'temp_password';

 

mysql> GRANT ALL PRIVILEGES ON *.* TO 'temp_root'@'localhost' WITH GRANT OPTION;

 

mysql> exit

重新启动MySQL服务,并使用新的临时root用户登录MySQL服务器

$ sudo systemctl start mysql

 

$ mysql -u temp_root -p

使用ALTER命令修改root用户密码

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';

这里,'new_password' 是您要设置的新密码,您可以根据需要进行修改。此命令将修改root用户在本地MySQL服务器上的密码。

 

退出MySQL服务器,并停止MySQL服务

mysql> exit

 

$ sudo systemctl stop mysql

删除临时用户

$ sudo mysqld_safe --skip-grant-tables &

 

$ mysql -u root

 

mysql> FLUSH PRIVILEGES;

 

mysql> REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'temp_root'@'localhost';

 

mysql> DROP USER 'temp_root'@'localhost';

 

mysql> exit

重新启动MySQL服务

$ sudo systemctl start mysql

现在,您可以使用新密码重新登录root用户。

 

方法三:使用MySQL安全性模式重置密码

如果您无法使用上述两种方法,您可以尝试使用MySQL安全性模式重置密码。这种方法通常用于无法正常启动MySQL服务器的情况。下面是重置root密码的步骤:

 

停止MySQL服务

$ sudo systemctl stop mysql

启动MySQL安全性模式

$ sudo mysqld_safe --skip-grant-tables --skip-networking &

使用新的命令行终端连接到MySQL服务器

$ mysql -u root

修改root用户密码

mysql> FLUSH PRIVILEGES;

 

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';

这里,'new_password' 是您要设置的新密码,您可以根据需要进行修改。此命令将修改root用户在本地MySQL服务器上的密码。

 

退出MySQL服务器

mysql> exit

停止MySQL安全性模式

$ sudo killall mysqld_safe

启动MySQL服务

$ sudo systemctl start mysql

现在,您可以使用新密码重新登录root用户。

 

以上是三种重置MySQL root密码的方法。每种方法都有其适用的情况,您可以根据您的具体情况选择合适的方法。无论您选择哪种方法,请务必在重置密码后及时删除临时用户并启动MySQL服务。

有话要说