问题描述:MySQL登录报错 ERROR 1698 (28000): Access denied for user 'root'@'localhost' 如下图所示
解决办法:
1、跳过验证
(1)关闭MySQL服务
service mysql stop
(2)打开 my.cnf 文件
sudo vim /etc/mysql/my.cnf
(3)在my.cnf文件末尾添加以下代码:
[mysqld]
skip-grant-tables
如下图所示:
2、更新root用户信息
(1)启动MySQL服务
sudo service mysql start
(2)进入MySQL
mysql
(3)更新 root 用户信息
use mysql;
update mysql.user set authentication_string=PASSWORD('12345678'),
plugin='mysql_native_password' where user='root';
flush privileges;
exit
3、取消跳过验证
(1)关闭MySQL服务
service mysql stop
2)打开 my.cnf 文件
sudo vim /etc/mysql/my.cnf
(3)注释掉跳过验证时在my.cnf文件末尾添加的代码:
# [mysqld]
# skip-grant-tables
如下图所示:
4、登录MySQL
(1)启动MySQL
sudo service mysql start
(2)登录MySQL
mysql -u root -p