天天看点

操蛋的linux改mysql密码(1054和1819错误)

最近买了阿里云的linux服务器,帮我装好tomcat,jdk,mysql镜像,不怎么会用,在朋友帮助下勉强启动,但是初始的mysql密码太过复杂。看了网上linux修改mysql密码的教程鱼龙混杂,跟着试着走却发现很多bug(1045,和1819错误),就想着把步骤总结一下。

linux mysql密码以及错误的解决

输入:mysql -uroot -p

输入:(密码 )//ps:输入密码登陆成功

mysql>use mysql; //指明要操作数据库

mysql> update user set password=passworD(“test”) where user=‘root’;更改密码

mysql> flush privileges;

mysql> exit;

可能会报错,未识别password;

就把mysql> update user set password=passworD(“test”) where user=‘root’;更改密码

换成mysql> update mysql.user set authentication_string=password(‘123456’) where user=‘root’;

可能还会报错说密码不符合规范,

那么就修改 validate_password_policy;这个和validate_password_policy有关,具体步骤

mysql> set global validate_password_policy=0;

mysql> select @@validate_password_length;

mysql> select @@validate_password_length;

mysql> set global validate_password_length=1;

mysql> select @@validate_password_length;//再次查看会发现数值变成四,这样再设置密码

mysql> update mysql.user set authentication_string=password(‘123456’) where user=‘root’;

mysql> flush privileges;//刷新

mysql> quit//离开

[root@iZkt0hekctiwafZ ~]# mysql -u root -p
Enter password: 
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.16 MySQL Community Server (GPL)

Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> use mysql;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed

mysql> update user set password=password('123456') where user='root';
ERROR 1054 (42S22): Unknown column 'password' in 'field list'//意思是识别不出password 要把passoword改成authentication_string
mysql> update mysql.user set authentication_string=password('123456') where user='root';
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements//意思是规则不满足

mysql> set global validate_password_policy=0;
Query OK, 0 rows affected (0.00 sec)

mysql> select @@validate_password_length;
 ---------------------------- 
| @@validate_password_length |
 ---------------------------- 
| 8 |
 ---------------------------- 
1 row in set (0.00 sec)

mysql> select @@validate_password_length;
 ---------------------------- 
| @@validate_password_length |
 ---------------------------- 
| 8 |
 ---------------------------- 
1 row in set (0.00 sec)

mysql> set global validate_password_length=1;
Query OK, 0 rows affected (0.00 sec)

mysql> select @@validate_password_length;
 ---------------------------- 
| @@validate_password_length |
 ---------------------------- 
| 4 |
 ---------------------------- 
1 row in set (0.00 sec)

mysql> update mysql.user set authentication_string=password('123456') where user='root';
Query OK, 1 row affected, 1 warning (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 1

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

mysql>      

继续阅读