MySQL 更改用户密码

一、MySQL 更改用户密码介绍

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

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

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

二、MySQL 修改用户密码的三种方式

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

  1. UPDATE语句修改
  2. SET PASSWORD 语句
  3. ALTER USER 声明

让我们看看如何通过使用上面的语句来更改 MySQL 中的用户帐户密码。

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

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

假设您想更改或更新从本地主机连接的用户 peter的密码 jtp12345,执行SQL语句如下:

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

 如果您使用的是MySQL 版本5.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 语句来更改用户帐户的密码。我们需要使用以下语法来更改用户peter的密码jtp123。

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

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

热门文章

优秀文章