MySQL如何设置用户密码?
有几种方法可以设置 MySQL 用户密码:
- CREATE USER...IDENTIFIED BY
- GRANT...IDENTIFIED BY
- SET PASSWORD
- mysqladmin password
- UPDATE grant tables (不推荐)
对于所有方法,更改密码所需的权限是:
所有用户都可以更改自己的密码。
mysql 数据库上有 UPDATE 的用户可以使用 SET PASSWORD 或者在 MySQL 5.7 及更高版本中使用 ALTER USER 更新其他用户的密码。
如果开启了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