1.停库


service mysql stop


备份user.*文件

[root@zw-test-db mysql]# cp user.* ../bak 



2. 在参数文件 my.cnf  [mysqld] 加入skip-grant-tables 


3. 启动 


[root@zw-test-db mysql_3306]# mysqld --defaults-file=/data/mysql/mysql_3306/my3306.cnf  &

[1] 11886

[root@zw-test-db mysql_3306]# 


4.登陆,密码直接回车,不需要密码验证 


[root@zw-test-db mysql_3306]# mysql -S /tmp/mysql3306.sock -uroot -p

Enter password: 

Welcome to the MySQL monitor.  Commands end with ; or \g.

Your MySQL connection id is 2

Server version: 5.7.14-log 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> 


 

 

5. 修改密码:5.7之前是 password字段 ,5.7后变成了 authentication_string 


mysql> update mysql.user set authentication_string=password('123456') where user='root' and host='localhost'; 

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)


6. 注释掉 /data/mysql/mysql_3306/my3306.cnf 里面新加的 skip-grant-tables 参数


7.用新密码登陆


[root@zw-test-db ~]# mysql -S /tmp/mysql3306.sock -u root -p

Enter password: 

Welcome to the MySQL monitor.  Commands end with ; or \g.

Your MySQL connection id is 4

Server version: 5.7.14-log 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> 


8. 重启一下