Ubuntu下連接mysql出現 ERROR 1698 (28000): Access denied for user 'root'@'localhost'錯誤解決方法


ubuntu版本:18.04    mysql版本:5.7.24  

 

 

ubuntu安裝mysql后用root賬戶登入會出現問題:ERROR 1698 (28000): Access denied for user 'root'@'localhost'

 

可能是因為初始密碼為空;按空格回車后還是報一樣的錯

 

這樣就只能使用debian-sys-maint賬戶修改root賬戶密碼了。

debian-sys-maint賬戶是安裝mysql時系統自動生成的mysql用戶,debian和ubuntu系統都會這樣做, 

停止或重啟服務都靠它,刪除它就無法重啟或者雷霆之服務。
如果你修改了它的密碼或覆蓋掉密碼,也會出現錯誤:
error: 'Access denied for user 'debian-sys-maint'@'localhost' (using password: YES)'

 

 1  查看debian-sys-maint賬戶密碼:

 

debian-sys-maint賬戶是安裝mysql時系統自動生成的,密碼隨機生成。

 

終端輸入: sudo vim /etc/mysql/debian.cnf  


 

password就是密碼,如果是復制密碼由后面使用,切忌不要將密碼字符串后面的空格也復制進去,否者后面粘貼密碼登入賬戶時會出現錯誤。

 

2 用剛才查看的密碼登入debian-sys-maint賬戶:

 

終端輸入指令:mysql -u debian-sys-maint -p ,然后輸入剛才查看的debian-sys-maint賬戶密碼。 注意-u可以和debian-sysy連在一起,-p不能。u表示用戶名,p表示密碼。

 

3 進入mysql后重新設置root賬號密碼:

 

sql指令:

use mysql   (一定要寫上這條語句,很多網上的解決方案缺少這條語句,導致后一條語句出現no database selected錯誤,這是因為有選擇新創建的表所在的數據庫)

UPDATE user SET authentication_string=PASSWORD('你的密碼') where USER='root';

5.7之前的版本用:

update user set password=PASSWORD("你的密碼") where User = 'root';

指令的大小寫都行,注意語句后面分號。

 

 

退出mysql(sql指令:quit)並重啟mysql(終端指令:sudo service mysql restart)

這時候用root賬戶和修改后的密碼登入時(終端指令:mysql -uroot -p)會發現還是報錯!這時候其實密碼是修改成功的,但是plugin root 的字段是auth_socket,需要修改過來。

 

4 修改plugin root

 

查看plugin root

用debian-sys-maint賬戶和密碼登入mysql,然后輸入sql語句:

use mysql

select user,plugin from  user;

 

 

修改plugin root

update user set authentication_string =password('你的密碼'),plugin='msyql_native_password' where user='root';

 

 

然后推出並重啟mysql,再用root賬戶登入就可以了。

 

 

 總結:

1 這篇文章是遇到這個問題后查找網上資料整合而成的,網上關於這個問題的資料很多但是也有很多不足:比如指令不夠詳細,尤其是很多資料缺少使用mysql時需要use mysql這個指令的提示,這對小白用戶不太友好。再一個,大部分相關文章缺少修改plugin root的部分,所以我折騰了很多遍修改密碼但還是不成功。

2 很多時候問題的原因只是一個很小的錯誤,比如少一個分號,空格,復制密碼吧后面的換行符也復制進去了等,所以,盡量減少操作失誤。

3 遇到問題多分析反饋的錯誤原因

4 網上的資料很多,但終究是別人的,不一定能解決自己的問題(但可以提供解決問題思路),遇到問題多查找相關資料,找解決辦法,這個過程可能很花費時間很煩人,但是也能拓展不少知識,最后總結理解就能成為自己的東西。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM