MySQL 用户密码
摘要:在本教程中,您将学习如何使用各种语句,如
UPDATE
,SET PASSWORD,
和ALTER USER
语句修改MySQL用户密码。
在更改MySQL用户 帐户的密码之前 ,您应考虑以下重要问题:
- 您想要更改密码的用户帐户是什么?
- 什么应用程序正在使用其密码被更改的用户帐户?如果在不更改使用用户帐户的应用程序的连接字符串的情况下更改密码,则应用程序将无法连接到数据库服务器。
SET PASSWORD,
和GRANT USAGE
语句。
使用UPDATE语句更改MySQL用户密码
更改密码的第一种方法是使用UPDATE
语句来更新mysql
数据库user
表。
执行UPDATE
语句后,还需要执行FLUSH PRIVILEGES
语句以从mysql
数据库中的grant表重新加载权限。
假设你想为dbadmin
更改密码,则需要执行以下语句:
USE mysql; UPDATE user SET password = PASSWORD('dolphin') WHERE user = 'dbadmin' AND host = 'localhost'; FLUSH PRIVILEGES;
请注意,从MySQL 5.7.6开始,用户表
因此,如果您使用MySQL 5.7.6+,则必须使用authentication_string
仅使用列来存储密码。此外,它删除了password
列。UPDATE
语句中的authentication_string
列:
USE mysql; UPDATE user SET authentication_string = PASSWORD('dolphin') WHERE user = 'dbadmin' AND host = 'localhost'; FLUSH PRIVILEGES;
注意:
PASSWORD()
函数计算纯文本的哈希值,同时在MySQL 8.0.11版本中PASSWORD
被移除。
使用SET PASSWORD语句更改MySQL用户密码
更改密码的第二种方法是使用SET PASSWORD
语句。
您使用user@host
格式的用户帐户来更新密码。如果您需要更改其他帐户的密码,您的帐户至少需要拥有UPDATE
权限。
通过使用SET PASSOWORD
语句,您无需执行FLUSH PRIVILEGES
语句即可从授权表重新加载权限。
以下语句dbadmin
使用SET PASSWORD
语句更改用户帐户的密码 。
SET PASSWORD FOR 'dbadmin'@'localhost' = PASSWORD('bigshark');请注意,从版本5.7.6开始,MySQL对此语法进行了折旧,并可能在将来的版本中将其删除。相反,它使用明文密码如下:
SET PASSWORD FOR 'dbadmin'@'localhost' = 'bigshark';
使用ALTER USER语句更改MySQL用户密码
更改用户帐户密码的第三种方法是使用ALTER USER
带有IDENTIFIED BY
子句的语句 。
以下ALTER USER
语句将dbadmin
用户的密码更改 为littlewhale
:
ALTER USER dbadmin@localhost IDENTIFIED BY 'littlewhale';如果要重置MySQL
root
帐户的密码,则需要强制MySQL数据库服务器停止并重新启动,而不使用授权表验证。
在本教程中,我们向您介绍了一些方便的语句,允许您更改MySQL数据库中用户帐户的密码。