Access denied for user ‘root‘@‘localhost‘問題的解決

zxfBdd發表於2020-10-21

 

問題場景

在阿里雲上部署了一臺伺服器,CentOS6.8系統環境,安裝了MySql+Nginx+Git+vsftpd等軟體,在本地Linux終端以非root賬戶SSH遠端登入伺服器,在將專案打包釋出時遇到如題所示問題。程式碼中配置檔案裡的使用者名稱不是“root”,密碼正確,且該使用者名稱和密碼是配置在服務端資料庫的使用者表中的。但是在用瀏覽器呼叫跟資料庫互動介面時出錯:

嘗試解決

網上搜了一堆文章,主要集中在

(1)對root授權:無效

grant all privileges on *.* to root@localhost 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 root@'localhost' identified by '密碼';
mysql> flush privileges;

mysql> grant all privileges on *.* to root@'%' identified by '密碼';
mysql> flush privileges;

(4)退出再試

mysql> quit
Bye

(5)再次登入 

然後,問題就解決了~

相關文章