- 在MySQL中,有四种方式可以修改权限用户的密码
- 使用mysqladmin命令
- 使用set password for命令
- 使用UPDATA语句
- 使用ALTER语句
使用 mysqladmin 命令
- mysqladmin是MySQL官方提供的shell命令行工具(mysql是连接工具),其参数都需要在shell命令行上执行。mysqladmin提供了两类参数:连接参数和命令参数,连接参数用来指定连接信息,命令参数则是服务命令
- root 用户可以使用 mysqladmin 命令来修改密码
- 使用mysqladmin命令需要先输入旧密码登录,然后更改密码为新密码
语法
mysqladmin -u用户名 -p旧密码 password 新密码
示例
C:\Users>mysqladmin -u root -p password "rootpwd"
Enter password: ****
mysqladmin: [Warning] Using a password on the command line interface can be insecure.
Warning: Since password will be sent to server in plain text, use ssl connection to ensure password safety.
- 输入 mysqladmin 命令后,按回车键,然后输入 root 用户原来的密码。执行完毕后,密码修改成功,root 用户登录时将使用新的密码。
- 运行结果中,输入密码后会提示在命令行界面上使用密码可能不安全的警告信息,因为在命令行输入密码时,MySQL 服务器就会提示这些安全警告信息
使用 set password for 命令
- 在 MySQL 中,只有 root 用户可以通过更新 MySQL 数据库来更改密码。使用 root 用户登录到 MySQL 服务器后,可以使用 SET 语句来修改普通用户密码
语法
set password for '用户名'@'IP地址' = password('新密码')
示例
mysql> SET PASSWORD FOR 'testuser'@'localhost' = PASSWORD("newpwd");
Query OK, 0 rows affected, 1 warning (0.01 sec)
使用 UPDATE 语法
使用update语法修改直接mysql.user中的密码字段
语法
UPDATE user SET authentication_string = password('新密码') WHERE user = '用户名' AND host = 'IP地址'
示例
mysql> USE mysql;
mysql> UPDATE user SET password = password('123') WHERE user = 'root' AND host = 'localhost';
Query OK, 0 rows affected,1 warning (0.27 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.03 sec)
使用 ALTER 语法
- 使用ALTER对数据表中的密码字段进行修改
语法
ALTER USER '用户名'@'IP地址' IDENTIFIED WITH mysql_native_password BY '密码'
示例
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';
Query OK, 0 rows affected,1 warning (0.27 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.03 sec)