程序员社区

MySQL系列教程 --- 8、更改MySQL用户密码

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

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

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

MySQL允许我们以三种不同的方式更改用户帐户密码,如下所示:

  1. 更新声明
  2. 设置密码语句
  3. ALTER 用户声明

让我们详细看看如何使用上面的语句在 MySQL 中更改用户帐户密码:

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

该语句是第一种更改用户密码的方式,用于更新 MySQL 数据库的用户表。在这里,您必须在执行 UPDATE 语句后使用FLUSH PRIVILEGE语句从 MySQL 数据库的授权表重新加载权限。

假设您要更改或更新从 localhost 使用密码jtp12345连接的用户peter的密码,请执行以下SQL语句:

mysql> USE mysql;  

mysql> UPDATE user SET password = PASSWORD('jtp12345') WHERE user = 'peter' AND host = 'localhost';  

mysql> FLUSH PRIVILEGES;  

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

mysql> USE mysql;  

mysql> UPDATE user SET authentication_string = PASSWORD('jtp12345') WHERE user = 'peter' AND host = 'localhost';  

mysql> FLUSH PRIVILEGES;  

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

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

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

mysql> SET PASSWORD FOR 'peter'@'localhost' = PASSWORD('jtp12345');  

如果您使用的是 MySQL 5.7.6 或更高版本,则不推荐使用上述语句,并且在未来版本中将无法使用。相反,我们需要使用以下语句:

mysql> SET PASSWORD FOR 'peter'@'localhost' = jtp12345;  

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

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

mysql> ALTER USER peter@localhost IDENTIFIED BY 'jtp123';  

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

赞(0) 打赏
未经允许不得转载:IDEA激活码 » MySQL系列教程 --- 8、更改MySQL用户密码

一个分享Java & Python知识的社区