如何更改MySQL用户密码

时间:2019-11-20 08:52:33  来源:igfitidea点击:

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

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

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

在回答了这些问题之后。
您可以开始更改用户帐户的密码。

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

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

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

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

假设您要更改从本地主机连接到海豚的dbadmin用户的密码,需要执行以下语句:

USE mysql;

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

FLUSH PRIVILEGES;

请注意,从MySQL 5.7.6开始,用户表仅使用authentication_string列存储密码。
此外,它删除了"密码"列。

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

USE mysql;

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

FLUSH PRIVILEGES;

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

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

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

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

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

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

SET PASSWORD FOR 'dbadmin'@'localhost' = PASSWORD('bigshark');

请注意,从版本5.7.6开始,MySQL弃用了该语法,并且可能会在将来的版本中删除它。
而是使用以下明文密码:

SET PASSWORD FOR 'dbadmin'@'localhost' = bigshark;

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

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

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

ALTER USER dbadmin@localhost IDENTIFIED BY 'littlewhale';

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

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