3 Best Ways to Change MySQL User Password By Examples

摘要:在本教程中,您将学习如何使用各种语句(例如UPDATESET PASSWORD,ALTER USER语句)更改 MySQL 用户密码。

How To Change MySQL User Password

在更改MySQL 用户帐户的密码之前,您应该考虑以下重要问题:

  • 您要更改哪个用户帐户的密码?
  • 哪个应用程序正在使用正在更改密码的用户帐户?如果更改密码而不更改正在使用该用户帐户的应用程序的连接字符串,则该应用程序将无法连接到数据库服务器。

这些问题得到解答后。您可以开始更改用户帐户的密码。

MySQL 提供了各种可用于更改用户密码的语句,包括UPDATESET PASSWORD,GRANT USAGE语句。

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

更改密码的第一种方法是使用UPDATE语句更新mysql数据库的user表。

执行UPDATE语句后,还需要执行FLUSH PRIVILEGES语句,从mysql数据库的授权表中重新加载权限。

假设您要更改dbadmin的密码 用户从localhost连接到dolphin时,需要执行以下语句:

USE mysql;

UPDATE user 
SET password = PASSWORD('dolphin')
WHERE user = 'dbadmin' AND 
      host = 'localhost';

FLUSH PRIVILEGES;Code language: SQL (Structured Query Language) (sql)
请注意,从MySQL 5.7.6开始,用户表仅使用authentication_string列来存储密码。此外,它还删除了password栏。

因此,如果您使用 MySQL 5.7.6+,则必须在UPDATE语句中使用authentication_string列:

USE mysql;

UPDATE user 
SET authentication_string = PASSWORD('dolphin')
WHERE user = 'dbadmin' AND 
      host = 'localhost';

FLUSH PRIVILEGES;Code language: SQL (Structured Query Language) (sql)

请注意, PASSWORD()函数根据纯文本计算哈希值。

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

更改密码的第二种方法是使用SET PASSWORD语句。

您可以使用user@host格式的用户帐户来更新密码。如果您需要更改其他帐户的密码,您的帐户至少需要具有UPDATE权限。

通过使用SET PASSOWORD语句,您无需执行FLUSH PRIVILEGES语句即可从授权表重新加载权限。

以下语句使用SET PASSWORD语句更改dbadmin用户帐户的密码。

SET PASSWORD FOR 'dbadmin'@'localhost' = PASSWORD('bigshark');Code language: SQL (Structured Query Language) (sql)

请注意,从版本 5.7.6 开始,MySQL 已弃用此语法,并可能在未来版本中将其删除。相反,它使用明文密码,如下所示:

SET PASSWORD FOR 'dbadmin'@'localhost' = bigshark;Code language: SQL (Structured Query Language) (sql)

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

更改用户帐户密码的第三种方法是使用带有IDENTIFIED BY子句的ALTER USER语句。

以下ALTER USER语句将dbadmin用户的密码更改为littlewhale

ALTER USER dbadmin@localhost IDENTIFIED BY 'littlewhale';Code language: SQL (Structured Query Language) (sql)

如果您想重置 MySQL root帐户的密码,您需要强制 MySQL 数据库服务器停止并重新启动,而不使用授权表验证。

在本教程中,我们向您介绍了一些方便的语句,这些语句允许您更改 MySQL 数据库中用户帐户的密码。

本教程有帮助吗?