ERROR 1698 (28000): Access denied for user 'root'@'localhost'

工具:
mysql  Ver 14.14 Distrib 5.7.25, for Linux (x86_64) 

问题描述:
Ubuntu在安装完成mysql后,无法直接通过mysql -u root -p命令登录mysql,出现如下错误:ERROR 1698 (28000): Access denied for user 'root'@'localhost'

解决方法:

Ubuntu linux下安装新版本mysql,安装时root密码是随机的,因此会出现上述错误。

第一步,登录mysql

既然我们无法通过root用户进入MySQL,那我们就只能通过其他用户登录MySQL了。在我们下载安装MySQL的时候系统给我们创建了一个用户。打开 /etc/mysql/debian.cnf如下。

ERROR 1698 (28000): Access denied for user 'root'@'localhost'_第1张图片

我们找到client的user和password,然后在终端输入 mysql -u debian-sys-maint -p 然后回车输入 password的内容。这样就进入了MySQL了,如图:

ERROR 1698 (28000): Access denied for user 'root'@'localhost'_第2张图片

第二步,查看user表

在mysql中输入:select user, plugin from mysql.user,结果如下:

ERROR 1698 (28000): Access denied for user 'root'@'localhost'_第3张图片

第三步,修改root密码

输入以下命令:update mysql.user set authentication_string=PASSWORD('123'), plugin='mysql_native_password' where user='root';

第四步,刷新

输入以下命令:flush privileges;

然后重新启动服务器,就可以正常登录啦

ERROR 1698 (28000): Access denied for user 'root'@'localhost'_第4张图片

你可能感兴趣的:(MySQL学习之路)