更改 MySQL 用户密码

2025年3月17日 | 阅读 3 分钟

MySQL 用户是一个记录,其中包含 MySQL 账户的登录信息、账户权限和主机信息,用于访问和管理数据库。登录信息包括用户名和密码。在某些情况下,需要更改 MySQL 数据库中的用户密码。

要更改任何用户账户的密码,您必须牢记以下信息:

  • 您要更改的用户账户的详细信息。
  • 您要更改密码的用户所使用的应用程序。如果您在不更改应用程序连接字符串的情况下重置用户账户密码,则该应用程序将无法连接到数据库服务器。

MySQL 允许我们通过以下三种方式更改用户账户的密码:

  1. UPDATE 语句
  2. SET PASSWORD 语句
  3. ALTER USER 语句

下面我们详细了解如何使用上述语句在 MySQL 中更改用户账户的密码。

使用 UPDATE 语句更改用户账户密码

该语句是通过更新 MySQL 数据库的用户表来更改用户密码的第一种方法。在这里,您必须在执行 UPDATE 语句后使用 **FLUSH PRIVILEGES** 语句来重新加载 MySQL 数据库权限表中的权限。

假设您想更改或更新来自 localhost、用户名为 **peter**、密码为 **jtp12345** 的用户的密码,请执行以下 SQL 语句:

如果您使用的是 **5.7.6** 或更高版本的 MySQL,则上述语句将不起作用。这是因为 MySQL 用户表包含存储密码的 **authentication_string** 列。现在,更高版本在 UPDATE 语句中包含 authentication_string 列,如下面的语句所示。

使用 SET PASSWORD 语句更改用户账户密码

SET PASSWORD 语句是在 MySQL 数据库中更改用户密码的第二种方法。如果您想更改其他账户的密码,则必须拥有 UPDATE 权限。SET PASSWORD 语句使用 **username@localhost** 格式的用户账户。

无需使用 FLUSH PRIVILEGES 语句从 MySQL 数据库的授权表中重新加载权限。我们可以使用以下语句通过 SET PASSWORD 语句更改用户账户 peter 的密码:

如果您使用的是 MySQL 5.7.6 或更高版本,则上述语句已弃用,在未来的版本中将不起作用。相反,我们需要使用以下语句:

使用 ALTER USER 语句更改用户账户密码

ALTER USER 语句是在 MySQL 数据库中更改用户密码的第三种方法。MySQL 使用带有 IDENTIFIED BY 子句的 ALTER USER 语句来更改用户账户的密码。我们需要使用以下语法来更改用户 **peter** 的密码,新密码为 **jtp123**。

有时,您需要重置 MySQL 的 **root** 账户密码。在这种情况下,您可以强制停止并重新启动 MySQL 数据库服务器,而无需使用授权表验证。