2010-07-15 25 views
6

我想通過命令連接到我的MySQL數據庫的遠程服務器上(通過SSH):MySQL的權限從本地否認,但可以遠程連接

mysql -u me -h mydomain.com -p 

但它無法用ERROR 1045(28000) :拒絕訪問用戶..錯誤

雖然

mysql -u me -h localhost -p 

作品

現在這不僅僅是因爲我沒有設置權限,因爲這個數據庫的權限設置爲%或任何主機爲我的用戶。

事實證明,我可以使用同一個用戶,從本地機器正確連接到服務器。即,從我的本地機器運行以下命令工作:

mysql -u me -h mydomain.com -p 

所以我的問題,爲什麼會發生這種情況,我該如何解決?當我使用域名而不是本地主機時,爲什麼我不能從我的服務器連接到我的mysql服務器,即使權限設置爲接受來自任何主機的連接。

回答

16

這是因爲MySQL處理權限授予的方式。

當你從遠程主機連接(或者通過一個外部IP本地主機),它將匹配[email protected]%條目(如果是你正在使用的特定主機沒有具體的補助!)。但是,當通過回送接口(「本地主機」IP)或套接字連接時,它將使用[email protected]授權。所以你必須有兩個GRANT PRIVILEGES;一個用於[email protected],另一個用於[email protected]%

相關問題