1. 程式人生 > >eroor 1698(28000):Access denied for user 'root' ; eroor 1045(28000):Access denied for user 'root'

eroor 1698(28000):Access denied for user 'root' ; eroor 1045(28000):Access denied for user 'root'

問題解決:使用mysql -u root -p登陸mysql時報錯
eroor 1698(28000):Access  denied for user 'root'
分析

安裝mysql時沒有設定密碼,這個問題與ERROR 1045 (28000)的解決方案一致

解決1,不徹底方案

使用sudo mysql登陸mysql

解決2,徹底方案:

1.sudo vim /etc/mysql/debian.cnf,這個檔案裡有MySQL預設的使用者名稱和使用者密碼,

在這裡插入圖片描述

發現預設的使用者名稱是debian-sys-maint,password後是預設密碼

2.使用預設的使用者名稱與密碼登陸sql : mysql -u debian-sys-maint -p

,發現可以登陸在這裡插入圖片描述

3.修改密碼:

mysql> update mysql.user set authentication_string=password('password') where user='root'and Host = 'localhost';
mysql>flush privileges;

在這裡插入圖片描述

顯示Query OK,即更改成功。

4.重啟mysql服務即可

sudo service mysql restart

else:

再次使用root和新密碼登陸,如果出現MySQL ERROR 1698 (28000) 錯誤

1.使用sudo mysql

登陸;或停止mysql服務後,使用sudo mysqld_safe --skip-grant-tables &以安全模式登陸。

2.輸入下面指令:newPwd為你的密碼

mysql> update mysql.user set authentication_string=PASSWORD('newPwd'),plugin='mysql_native_password' where user='root';

在這裡插入圖片描述

重啟mysql服務 ,問題可以解決

在這裡插入圖片描述

參考

https://stackoverflow.com/questions/39597682/mysql-error-1698-28000-access-denied-for-user-rootlocalhost

https://blog.csdn.net/tyt_xiaotao/article/details/80664740

https://www.cnblogs.com/leolztang/p/5094930.html