mysql忘记root密码怎么办
时间 : 2023-06-01 09:33:02声明: : 文章内容来自网络,不保证准确性,请自行甄别信息有效性

当你忘记 MySQL 的 root 密码时,不要担心,有几种方法可以帮助你恢复或重置它。

以下是一些可行的方法:

## 方法一:重置 MySQL root 密码

1. 停止 MySQL 服务:

$ sudo systemctl stop mysql

2. 启动 MySQL 服务,并跳过权限检查:

$ sudo mysqld_safe --skip-grant-tables &

3. 使用root用户登录 MySQL:

$ mysql -u root

4. 切换到 MySQL 数据库:

mysql> use mysql;

5. 修改 root 用户的密码:

mysql> update user set authentication_string=password('new_password') where user='root';

6. 退出 MySQL:

mysql> quit;

7. 停止 MySQL 服务:

$ sudo systemctl stop mysql

8. 启动 MySQL 服务:

$ sudo systemctl start mysql

现在你可以使用新密码以 root 用户身份登录 MySQL。

## 方法二:使用 mysqladmin 工具重置 MySQL root 密码

1. 停止 MySQL 服务:

$ sudo systemctl stop mysql

2. 使用 mysqladmin 重置 root 用户的密码:

$ sudo mysqladmin -u root password new_password

3. 启动 MySQL 服务:

$ sudo systemctl start mysql

现在你可以使用新密码以 root 用户身份登录 MySQL。

## 方法三:更改 MySQL 配置文件以跳过身份验证

1. 停止 MySQL 服务:

$ sudo systemctl stop mysql

2. 编辑 MySQL 配置文件:

$ sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf

3. 在 [mysqld] 段下添加一行跳过身份验证的命令:

[mysqld]

skip-grant-tables

4. 保存并关闭文件。

5. 启动 MySQL 服务:

$ sudo systemctl start mysql

6. 以 root 用户身份登录 MySQL:

$ mysql -u root

7. 更改 root 用户的密码:

mysql> update user set authentication_string=password('new_password') where user='root';

8. 刷新权限:

mysql> flush privileges;

9. 退出 MySQL:

mysql> exit;

10. 修改 MySQL 配置文件以还原身份验证:

$ sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf

11. 删除或注释掉文件末尾的 `skip-grant-tables` 行。

12. 保存并关闭文件。

13. 启动 MySQL 服务:

$ sudo systemctl start mysql

现在你可以使用新密码以 root 用户身份登录 MySQL。

总结

当你忘记 MySQL 的 root 密码时,不要慌张。你可以使用上述任何方法来重置密码或跳过身份验证并设置新密码。无论哪种方法,确保操作后恢复 MySQL 的正常身份验证机制,以确保安全。

忘记了 MySQL 的 root 密码可能会让你感到很困扰,但是不用担心, MySQL 提供了几种方法来重置丢失的密码。下面介绍两种常用的方法。

方法一:使用mysqld_safe方式重置MySQL的root密码

这个方法比较简单,它通过重启 MySQL 服务时使用 mysqld_safe 命令的方式让 MySQL 服务处于无密码状态,随后,我们就可以使用新密码来更新 root 用户的密码了。

步骤如下:

1. 停止 MySQL 服务

可以使用 systemctl 命令来停止 MySQL:

```shell

sudo systemctl stop mysql

2. 使用下面的命令启动 MySQL 服务

本命令将使用 mysqld_safe 命令启动 MySQL 服务,并设置 mysqld_safe 的参数为 --skip-grant-tables,该参数会让 MySQL 服务以无密码身份启动。

```shell

sudo mysqld_safe --skip-grant-tables &

3. 登录 MySQL 服务

使用以下命令登录到 MySQL 服务:

```shell

mysql -u root

你将看到 MySQL 提示符。此时,你可以使用以下命令更新 root 用户的密码:

```mysql

UPDATE mysql.user SET authentication_string = PASSWORD('new_password'), plugin = 'mysql_native_password' WHERE User = 'root' AND Host = 'localhost';

FLUSH PRIVILEGES;

exit;

请确保将 "new_password" 替换为您的新密码。

4. 停止 MySQL 服务

使用以下命令停止 MySQL 服务:

```shell

sudo systemctl stop mysql

5. 启动 MySQL 服务并验证新密码

使用以下命令启动 MySQL 服务并验证您的新密码是否起作用:

```shell

sudo systemctl start mysql

现在,您应该可以使用新密码连接到 MySQL 了。

方法二:使用sudo方式重置MySQL的root密码

如果您无法或不想使用 mysqld_safe 来修改密码,您可以使用以下命令更改 MySQL root 用户的密码。这种方法更复杂一些。

步骤如下:

1. 停止 MySQL 服务

可以使用 systemctl 命令停止 MySQL 服务:

```shell

sudo systemctl stop mysql

2. 通过以下命令启动 MySQL 服务

本命令将使用 --skip-grant-tables 参数启动 MySQL 服务,并且会让 MySQL 服务处于无密码状态。

```shell

sudo mysqld --skip-grant-tables --skip-networking &

3. 在另一个终端窗口中登录到 MySQL

打开一个新的终端窗口,并使用以下命令登录到 MySQL 服务:

```shell

mysql -u root

由于我们已经使用了 --skip-grant-tables 参数启动了 MySQL,所以现在您可以直接连接到 MySQL,因为不需要密码。

4. 重置 root 用户的密码

使用以下命令来更新 root 用户的密码:

```mysql

UPDATE mysql.user SET Password=PASSWORD('new_password') WHERE User='root';

FLUSH PRIVILEGES;

quit;

请确保将 "new_password" 替换为您的新密码。

5. 停止 MySQL 服务

您现在可以通过按 Ctrl+C 来停止由第二步启动的 MySQL 进程。

6. 重启 MySQL 服务并验证新密码

使用以下命令重启 MySQL 服务:

```shell

sudo systemctl restart mysql

现在,您应该可以使用新密码连接到 MySQL 了。

总结

在 MySQL 中重置 root 用户的密码可能有点棘手,但是使用上述方法之一,您应该很快就能够恢复控制。无论哪种方法,最重要的建议是在完成密码重置后,及时备份数据,以免发生任何损失。