如何在 Red Hat Enterprise Linux 8 上重置 MySQL 根密码

如果您忘记了 Red Hat Enterprise Linux (RHEL) 8 上的 MySQL 根密码,并且想要重置它,那么您找到了正确的教程。 在本指南中,您还将了解如何更改任何其他现有 MySQL 用户帐户的密码。

先决条件

为了成功重置忘记的 MySQL root 密码,您需要有一个 Linux 用户帐户 sudo 运行 MySQL 的服务器上的权限。

重置忘记的 MySQL 根密码

如果您忘记了 MySQL 根密码,您需要完成以下步骤才能成功重置它。

  1. 停止 MySQL
  2. 跳过 MySQL 授权表
  3. 在最小环境下启动 MySQL
  4. 登录到 MySQL
  5. 更改 MySQL root 用户
  6. 停止 MySQL
  7. 取消设置选项以跳过 MySQL 授权表
  8. 在正常环境下启动 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 根密码。一如既往,我们非常欢迎您对本教程提供反馈。