解決這個時把我嚇壞了!!! 報錯如下 register db Ping , Error 1698: Access denied for user 'root'@'localhost' shell mysql USE mysql; mysql UPDATE user SET plugin='mysql ...
解決這個時把我嚇壞了!!!
報錯如下
register db Ping `default`, Error 1698: Access denied for user 'root'@'localhost'
開始我是想可能是ubuntu的原因,也可能是mysql8.0的原因吧,不管怎樣,我講一下解決這個問題的經歷
開始我是找到個解決辦法
mysql> USE mysql;
mysql> UPDATE user SET plugin='mysql_native_password' WHERE User='root';
mysql> FLUSH PRIVILEGES;
mysql> exit;
$ service mysql restart
這樣就把密碼弄沒了,即無密碼登陸,先說明一下,這個方法是可以解決上面抱錯的問題的
但是我在輸命令時輸錯了,哪裡輸入錯了就不寫了,反正導致的結果就是報錯連不上資料庫,用原來的密碼也登陸不上資料庫,我想,完了,密碼壞掉了,資料庫進不去了
然而我還是找到瞭解決辦法,用重置初始密碼的方式登陸資料庫,然後在執行一次上面的操作,用來覆蓋原來的錯誤操作,這樣,整個總算是解決了。
我是這樣做的:
1.進入目錄:cd /etc/mysql,
查看debian.cnf
文件,使用這個文件里的user和password登陸,這樣就登陸了進去了並可以進行一系列操作
下麵談的就與beego連接資料庫無關了,而是如何更預設密碼
2.進入mysql資料庫user mysql
3.進行密碼設置執行下列操作
mysql> update user set authentication_string=PASSWORD("自定義新密碼") where user='root';
mysql> update user set plugin="mysql_native_password";
mysql> flush privileges;
最後退出資料庫,並重啟資料庫
mysql> exit;
$ service mysql restart
這個問題讓我想起了我以前解決windows上egg-mysql連接高版本mysql,也就是下麵這段話:
mysql8.0 之前的版本中加密規則是mysql_native_password,而在mysql8之後,加密規則是caching_sha2_password, 解決此問題方法有兩種,一種是升級客戶端驅動,一種是把mysql用戶登錄密碼加密規則還原成mysql_native_password。