如果您忘记了 Red Hat Enterprise Linux (RHEL) 8 上的 MySQL 根密码,并且想要重置它,那么您找到了正确的教程。 在本指南中,您还将了解如何更改任何其他现有 MySQL 用户帐户的密码。
先决条件
为了成功重置忘记的 MySQL root 密码,您需要有一个 Linux 用户帐户 sudo 运行 MySQL 的服务器上的权限。
重置忘记的 MySQL 根密码
如果您忘记了 MySQL 根密码,您需要完成以下步骤才能成功重置它。
- 停止 MySQL
- 跳过 MySQL 授权表
- 在最小环境下启动 MySQL
- 登录到 MySQL
- 更改 MySQL root 用户
- 停止 MySQL
- 取消设置选项以跳过 MySQL 授权表
- 在正常环境下启动 MySQL
停止 MySQL
您应该做的第一件事是停止 MySQL 服务器。 在 RHEL 8 上,运行以下命令以停止 MySQL 服务器。
$ sudo systemctl stop mysqld
跳过 MySQL 授权表
下一步是将 MySQL 服务器置于绕过存储用户权限信息的授权表的环境中。 运行以下命令。
$ sudo systemctl set-environment MYSQLD_OPTS=”--skip-grant-tables”
在最小环境下启动 MySQL
成功设置 MySQL 以跳过授权表后,您可以使用以下命令启动服务:
$ sudo systemctl start mysqld
登录到 MySQL
现在,您可以按如下方式登录 MySQL。
$ sudo mysql -u root
一旦你看到 mysql> 提示如下图1所示,您就知道您已经成功绕过了密码要求。
更改 MySQL root 用户
成功登录 MySQL 后,您现在可以更改 root 用户并更新密码。
首先,使用以下查询重新加载授权表。
mysql> FLUSH PRIVILEGES;
接下来,运行以下查询以更改 MySQL root 用户并指定新密码。 代替 新的RootPassw0rd! 使用您想要的密码。
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewRootPassw0rd!';
重新加载授权表并使用接下来的两个查询退出 MySQL。
mysql> FLUSH PRIVILEGES;
mysql> QUIT;
停止 MySQL
运行以下命令以停止 MySQL。
$ sudo systemctl stop mysqld
取消设置跳过 MySQL 授权表的选项
下一个命令将取消设置跳过 MySQL 授权表的选项。
$ sudo systemctl unset-environment MYSQLD_OPTS
在正常环境下启动 MySQL
运行以下命令以正常模式再次启动 MySQL。
$ sudo systemctl start mysqld
您现在应该能够使用新的 root 密码成功登录 MySQL,如下所示。
$ sudo mysql -u root -p
退出 MySQL:
mysql> QUIT;
更改 MySQL 根密码
如果您知道您的 MySQL 根密码并且想要更改它,那么只需按如下方式登录 MySQL。
$ sudo mysql -u root -p
登录后,运行以下查询以更改 MySQL root 用户的密码。 代替 ChangeRootPassw0rd! 使用您要使用的新密码。
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'ChangeRootPassw0rd!';
笔记: 要更改任何其他 MySQL 用户的密码,只需替换 根 在上面的查询中与其他用户。 例如:
mysql> ALTER USER 'shola'@'localhost' IDENTIFIED BY 'ChangeSholaPassw0rd!';
之后,重新加载授权表:
mysql> FLUSH PRIVILEGES;
您现在可以退出 MySQL 并使用新密码再次登录。
结论
在本指南中,我们提供了明确的说明来帮助您在 Red Hat Enterprise Linux 8 上成功重置或更改 MySQL 根密码。一如既往,我们非常欢迎您对本教程提供反馈。