2012-10-23 51 views
5

當我嘗試使用它的遠程IP地址連接到本地mysql數據庫時,我得到一個拒絕訪問。當我嘗試從外部機器連接到同一個數據庫時,它沒有任何問題。當我使用localhost連接到本地數據庫時,它也可以很好地工作。例如,如果數據庫服務器的IP 1.2.3.4然後我得到以下結果:mysql:嘗試使用遠程IP連接到本地主機時連接被拒絕

# From the db server 
mysql -u username -h localhost -p #works perfectly 
mysql -u username -h 127.0.0.1 -p #works perfectly 
mysql -u username -h 1.2.3.4 -p #Access denied 

# From any other machine 
mysql -u username -h 1.2.3.4 -p #works perfectly 

我能做些什麼,讓我的數據庫本地訪問利用其遠程IP地址?數據庫服務器的操作系統是Fedora 15,MySQL版本是5.5.23。

+0

你正在運行防火牆嗎?什麼是防火牆設置? –

+1

「連接被拒絕」提示網絡設置。如果mysql拒絕訪問,它會這樣說:「錯誤1130(HY000):主機'1.2.3.4'不允許連接到這個MySQL服務器」 –

+0

@Justinᚅᚔᚈᚄᚒᚔ - 我正在運行ip-tables,但沒有別的。 @Olaf - 抱歉,我犯了一個錯誤:我得到了'ERROR 1045(28000):訪問被拒絕,而不是拒絕連接。 – Tiddo

回答

1

我找到了解決我的問題我自己,但我還是不明白爲什麼它不工作:

我授予的權限在主機上%用戶和本地主機:

# Before 
+-----------------+------------+ 
| Host   | User  | 
+-----------------+------------+ 
| %    | username | 
| localhost  | username | 
+-----------------+------------+ 

通過這些設置,我得到了上面顯示的結果。當我在主機上向該用戶授予特權時,它突然發揮作用。

# After 
+-----------------+------------+ 
| Host   | User  | 
+-----------------+------------+ 
| %    | username | 
| localhost  | username | 
| <myIpAddress> | username | 
+-----------------+------------+ 

顯然%不適用於遠程連接,但不適用於本地連接。

0

此特定問題可能是由主機名解析造成的。

我已經從我的my.cnf配置文件中刪除該變量在我的具體情況解決它:

跳過名稱解析

,方法是將井號#此話變量或當然,在確認你支持後,只需從my.cnf中刪除它。

相關問題