mysql5.7修改账户密码

在这里可以讨论MariaDB/MySql相关使用技术

版主: jvip_chen

回复
头像
jvip_chen
社区版主
社区版主
帖子: 136
注册时间: 2019年 1月 5日 13:36 星期六

mysql5.7修改账户密码

帖子 jvip_chen » 2019年 10月 23日 15:00 星期三

vim /etc/my.cnf

在末尾添加 skip-grant-tables ,保存。

代码: 全选

service mysqld restart 
再次登录时,不需要密码验证:

代码: 全选

mysql -uroot

mysql> use mysql
mysql> update user set authentication_string=password('HEpan693640.') where user='root';
mysql> flush privileges;
mysql> quit
上面修改的密码相当于在mysql安装的时候的初始化的密码变成了我们修改的密码。所以下次正常登录系统后mysql数据库还是要你把原始密码修改掉。

vim /etc/my.cnf ,注释或删掉 skip-grant-tables

代码: 全选

service mysqld restart 
再次以账户密码登录:

代码: 全选

mysql -uroot -pHEpan693640. 
此时系统会提示你修改密码,并且必须使用ALTER USER的方式修改,另外,无法执行其他任何语句:

代码: 全选

mysql> alter user 'root'@'localhost' identified by 'root';
此时系统报错:ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

原因:是密码策略过于严格。

将密码设置复杂些,符合密码策略: mysql> alter user 'root'@'localhost' identified by 'Root1@345';

然后,可以执行其他语句了。

我还想把密码修改得简洁些,于是需要修改密码策略:

代码: 全选

mysql> SHOW VARIABLES LIKE 'validate_password%';
+--------------------------------------+--------+
| Variable_name                        | Value  |
+--------------------------------------+--------+
| validate_password_check_user_name    | OFF    |
| validate_password_dictionary_file    |        |
| validate_password_length             | 8      |
| validate_password_mixed_case_count   | 1      |
| validate_password_number_count       | 1      |
| validate_password_policy             | MEDIUM |
| validate_password_special_char_count | 1      |
+--------------------------------------+--------+
7 rows in set (0.02 sec)

代码: 全选

mysql> 
修改密码策略:

代码: 全选

mysql> set global validate_password_length=1;
mysql> set global validate_password_mixed_case_count=0;
mysql> set global validate_password_number_count=0;
mysql> set global validate_password_policy='LOW';
mysql> set global validate_password_special_char_count=0;
修改过后密码策略如下:

代码: 全选

mysql> SHOW VARIABLES LIKE 'validate_password%';
+--------------------------------------+--------+
| Variable_name                        | Value  |
+--------------------------------------+--------+
| validate_password_check_user_name    | OFF    |
| validate_password_dictionary_file    |        |
| validate_password_length             | 4      |
| validate_password_mixed_case_count   | 0      |
| validate_password_number_count       | 0      |
| validate_password_policy             | LOW |
| validate_password_special_char_count | 0      |
+--------------------------------------+--------+
7 rows in set (0.02 sec)
然后再次执行alter user,或其他修改密码的方法 即可。

二、其他时候修改密码的方法:
1、mysql> alter user 'root'@'localhost' identified by 'root';
2、mysql> set password=password('root');
3、[root@node03 ~]# /usr/bin/mysql_secure_installation,然后根据提示往下走。
4、vim /etc/my.cnf 在末尾添加 validate-password=OFF,也可以跳过密码验证。

回复

回到 “MariaDB/MySql数据库”