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. 重启一下