MySQL中修改密码的几种方法

在MySQL中修改密码可以通过几种不同的方法来完成,具体取决于您使用的MySQL版本。


1. 使用ALTER USER语句

MySQL 5.7及以上版本推荐使用的方法

1
ALTER USER '用户名'@'主机名' IDENTIFIED BY '新密码';

例如,要将用户root的密码修改为123456,可以使用以下命令:

1
ALTER USER 'root'@'%' IDENTIFIED BY '123456';

修改密码后,需要执行以下命令来刷新权限:

1
FLUSH PRIVILEGES;

2. 使用SET PASSWORD语句

在MySQL 5.6及以下版本中

1
SET PASSWORD FOR '用户名'@'主机名' = PASSWORD('新密码');

例如,要将用户root的密码修改为123456,可以使用以下命令:

1
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('123456');

3.使用UPDATE语句

在MySQL 5.7.6版本以下,可以使用UPDATE语句来更新mysql数据库的user表。
但请注意,从MySQL 5.7.6版本起,user表使用authentication_string列代替之前的password列来存储密码。
如果您使用的是MySQL 5.7.6及以上版本,则需要在UPDATE语句中使用authentication_string列:

1
2
3
4
5
USE mysql;
UPDATE user
SET authentication_string = PASSWORD('新密码')
WHERE user = '用户名' AND host = '主机名';
FLUSH PRIVILEGES;

4. 通过root用户重置其他用户密码

如果您是root用户,并且需要重置其他用户的密码。

1
SET PASSWORD FOR 'target_username'@'target_host' = PASSWORD('new_password');

替换'target_username'为目标用户名,'target_host'为目标主机,'new_password'为新的密码。