摘要:在本教程中,您将学习如何使用各种语句(例如UPDATE
、 SET PASSWORD,
和ALTER USER
语句)更改 MySQL 用户密码。
在更改MySQL 用户帐户的密码之前,您应该考虑以下重要问题:
- 您要更改哪个用户帐户的密码?
- 哪个应用程序正在使用正在更改密码的用户帐户?如果更改密码而不更改正在使用该用户帐户的应用程序的连接字符串,则该应用程序将无法连接到数据库服务器。
这些问题得到解答后。您可以开始更改用户帐户的密码。
MySQL 提供了各种可用于更改用户密码的语句,包括UPDATE 、 SET 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)
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 数据库中用户帐户的密码。