错误信息:
[root@m1 ~]# mysql -u root -p
Enter password:
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
解决方法:破解密码
[root@m1 ~]# systemctl stop mysqld.service #关闭MySQL
[root@m1 ~]# echo "skip-grant-tables" >> /etc/my.cnf #启动mysql时不启动授权表
[root@m1 ~]# systemctl start mysqld.service #启动MySQL
[root@m1 ~]# mysql -uroot -p
Enter password: #直接回车
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 7
Server version: 8.0.12 MySQL Community Server - GPL
Copyright (c) 2000, 2018, 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> select host, user, authentication_string, plugin from user; #查看用户表
+-----------+---------------+-------------------------------------------+-----------------------+
| host | user | authentication_string | plugin |
+-----------+---------------+-------------------------------------------+-----------------------+
| localhost | root | *2E3D4D358A51F8919AC7DDE8EF03DC9A7B1E8752 | mysql_native_password |
| localhost | mysql.session | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password |
| localhost | mysql.sys | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password |
+-----------+---------------+-------------------------------------------+-----------------------+
3 rows in set (0.00 sec)
mysql> use mysql; #进入MySQL库
Database changed
#修改密码(msyql5.7.9之后使用authentication_string加密,放弃了passwd字段和passwd()函数)
mysql> update user set authentication_string='As233ds!' where user='root';
Query OK, 1 row affected (0.01 sec)
Rows matched: 1 Changed: 1 Warnings: 0
mysql> exit; #修改成功之后退出
Bye
[root@m1 ~]# sed -i '$d' /etc/my.cnf #删除追加的 Byeskip-grant-tables