如何修改MySQL用户密码

MySQL如何设置用户密码?

有几种方法可以设置 MySQL 用户密码:

  • CREATE USER...IDENTIFIED BY
  • GRANT...IDENTIFIED BY
  • SET PASSWORD
  • mysqladmin password
  • UPDATE grant tables (不推荐)

对于所有方法,更改密码所需的权限是:

  1. 所有用户都可以更改自己的密码。

  2. mysql 数据库上有 UPDATE 的用户可以使用 SET PASSWORD 或者在 MySQL 5.7 及更高版本中使用 ALTER USER 更新其他用户的密码。

  3. 如果开启了read_only选项,除了上面的权限,还需要SUPER。

更改用户

ALTER USER 语句还可用于更改现有用户的密码:

MySQL 5.7> ALTER USER tom@localhost IDENTIFIED BY 'my_new_password';
Query OK, 0 rows affected (0.01 sec)

ALTER USER 还支持用一条语句操作多个用户,例如:

MySQL 5.7> ALTER USER myuser@localhost, tom@localhost IDENTIFIED BY 'my_new_password';
Query OK, 0 rows affected (0.01 sec)
on  it road.com

mysql管理员

mysqladmin 实用程序允许我们更改我们知道其现有密码的用户的密码。
用法是:

$ mysqladmin --defaults-file=etc/my.cnf --user=tom --password my_new_password
Enter password:
New password:
Confirm new password:

MySQL 5.7 及更高版本(设置密码)

在 MySQL 5.7 及更高版本中,不需要使用 PASSWORD() 函数:

MySQL 5.7> SET PASSWORD FOR myuser@localhost = 'my_new_password';
Query OK, 0 rows affected (0.01 sec)

要更改当前用户的密码:

MySQL 5.7> SET PASSWORD = 'my_new_password';
Query OK, 0 rows affected (0.00 sec)

设置密码

在不更改任何权限的情况下更改现有帐户密码的最常见方法是使用 SET PASSWORD 语句。
例如,要将本地主机上的 tom 的密码设置为 new_password,请使用以下语句:

mysql> SET PASSWORD FOR tom@localhost = PASSWORD('new_password');
Query OK, 0 rows affected (0.00 sec)

如果我们以非 root 用户身份登录并且用户没有 mysql 数据库的 UPDATE 权限,则我们只能更改自己的密码。
使用不带 FOR 子句的 SET PASSWORD 语句执行此操作:

mysql> SET PASSWORD = PASSWORD('new_password');
日期:2020-09-17 00:11:12 来源:oir作者:oir