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

当你忘记了 MySQL 的 root 用户密码时,需要进行以下步骤来重置密码。

首先,停止 MySQL 服务。在 Linux 系统中,可以通过以下命令来停止 MySQL 服务:

sudo systemctl stop mysql

如果你使用的是 Windows 操作系统,则需要在服务窗口中找到 MySQL 服务并停止它。

接下来,以安全模式启动 MySQL 服务。在 Linux 系统中,可以通过以下命令启动 MySQL:

sudo mysqld_safe --skip-grant-tables &

在 Windows 系统中,可以使用以下命令在命令提示符下进入 MySQL 安全模式:

"C:\Program Files\MySQL\MySQL Server 8.0\bin\mysqld.exe" --console --skip-grant-tables

注意,上面的路径需要根据你安装 MySQL 的位置进行修改。

进入 MySQL 后,可以使用以下命令选择 MySQL 数据库:

use mysql;

然后,使用以下语句更新 root 用户密码:

update user set authentication_string=password('新密码') where user='root';

在 MySQL 8.0 以上的版本中,需要使用 authentication_string 字段来存储密码。

更新密码后,并不是立即生效的,还需要使用以下命令刷新 MySQL 的权限表:

flush privileges;

然后,可以使用以下命令退出 MySQL 安全模式:

exit;

最后,重新启动 MySQL 服务即可:

sudo systemctl start mysql

如果你使用的是 Windows 操作系统,则需要在服务窗口中找到 MySQL 服务并启动它。

上述方法是重置 MySQL root 密码的常规方法,如果你使用的 MySQL 版本较老或者有特殊设置,重置密码的方法可能会不同。因此,在进行重置之前,建议仔细查看 MySQL 官方文档中的相关说明。

忘记 MySQL 的 root 密码可能是一项非常常见的任务。无论是刚刚启用 MySQL 的新手还是经验丰富的用户,都可能遇到这个问题。幸运的是,MySQL 提供了一些简单的方法来复位 root 密码。

以下是针对忘记 MySQL root 密码所应采取的不同情况的几个方法。

## 方法一:使用mysqladmin

mysqladmin 是 MySQL 客户端程序的一部分,它是一个简单的用于重置 MySQL root 密码的程序。以下是具体步骤:

1. 通过运行以下命令,使用 root 用户登录 MySQL:

```

$ mysql -u root -p

Enter password: (输入旧密码)

```

2. 如果您无法登录,请记住要在命令行选项中指定密码。例如:

```

$ mysql -u root -pMyOldPassword

```

3. 一旦您登录成功,请使用以下命令更改 root 密码:

```

mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('newpassword');

```

注意:newpassword 这里是您要设置的新密码。请务必将其替换为自己的密码。

4. 如果第三步返回 True,则您已成功更改 root 密码。现在可以退出 MySQL 并使用新密码登录。

```

mysql> exit

Bye

$ mysql -u root -pNewPassword

```

## 方法二:使用 --skip-grant-tables 选项

此方法涉及重启 MySQL 以更改特殊选项。

1. 首先,停止当前运行的 MySQL 服务器。使用以下命令:

```

$ sudo systemctl stop mysql

```

2. 启动 MySQL 以跳过权限表:

```

$ sudo mysqld_safe --skip-grant-tables &

```

& 用于将该进程放入后台。

3. 现在可以使用以下 MySQL 命令更改 root 密码:

```

mysql> use mysql;

mysql> update user set password=PASSWORD("newpassword") where User='root';

mysql> flush privileges;

mysql> quit;

```

4. 停止 MySQL 并重新启动:

```

$ sudo systemctl stop mysql

$ sudo systemctl start mysql

```

5. 现在可以使用新密码登录 MySQL。

```

$ mysql -u root -pnewpassword

```

## 方法三:使用 --init-file 选项

此方法涉及创建文件以指定更改 MySQL 根密码的命令,并将该文件传递给 MySQL 作为其初始化。

1. 首先,创建一个文本文件,其中包含以下内容:

```

UPDATE mysql.user SET authentication_string=PASSWORD('newpassword') WHERE User='root';

FLUSH PRIVILEGES;

```

注意:newpassword 是您要设置的新密码。

2. 将文件保存到安全的位置,例如 /home/user/mysql-init,并使用以下命令更改文件权限:

```

$ chmod 0600 /home/user/mysql-init

```

3. 启动 MySQL 以使用该文件进行初始化:

```

$ sudo mysqld --init-file=/home/user/mysql-init &

```

4. 现在可以登录并验证更改后的密码。

```

$ mysql -u root -pnewpassword

```

这里介绍了三种方法来解决忘记 MySQL root 密码的问题。在这些方法中选择任何一种都可以使您立即恢复访问您的 MySQL 数据库。