Access denied for user 'root'@'localhost'問題的解決
阿新 • • 發佈:2018-12-26
問題場景
在阿里雲上部署了一臺伺服器,CentOS6.8系統環境,安裝了MySql+Nginx+Git+vsftpd等軟體,在本地Linux終端以非root賬戶SSH遠端登入伺服器,在將專案打包釋出時遇到如題所示問題。程式碼中配置檔案裡的使用者名稱不是“root”,密碼正確,且該使用者名稱和密碼是配置在服務端資料庫的使用者表中的。但是在用瀏覽器呼叫跟資料庫互動介面時出錯:
嘗試解決
網上搜了一堆文章,主要集中在
(1)對root授權:無效
grant all privileges on *.* to [email protected] identified by '你為root設定好的密碼'; flush privileges;
(2)修改root密碼:無效
(3)修改配置:失效
(4)新增host:失效
最終解決
搜了一圈,雖然問題沒解決,但是我也搞懂了就是對root的授權出了問題。
那問題到底出在哪裡?
為什麼別人的方法對我這個情況都不適用?
我跟別人在相同解決方案的情況下有什麼變數不同?
——想清楚了這點,我找到了不同點:我使用的是自己的賬戶SSH遠端登入並進行授權操作
(1)SSH登入root管理員賬戶
(2)登入MySql
# mysql -u root -p
Enter password:
(3)執行授權命令
mysql> grant all privileges on *.* to [email protected] 'localhost' identified by '密碼';
mysql> flush privileges;
或
mysql> grant all privileges on *.* to [email protected]'%' identified by '密碼';
mysql> flush privileges;
(4)退出再試
mysql> quit
Bye
(5)再次登入然後,問題就解決了~