2011-10-13 113 views
14

我正在使用PHP和MySQL建立數據庫連接,唯一的變化是我試圖從我的本地計算機使用我的服務器IP地址訪問我的遠程服務器。Mysql - 使用IP地址連接到遠程服務器

mysql_connect("x.xx.xx.x","username","password") or die(mysql_error()); 

和我得到的錯誤是Unable to connect to the given host。用戶擁有所有特權和權利。

+2

是您的服務器可從您的計算機訪問?特別是MYSQL服務器端口? – Fender

+0

嘗試從終端手動連接,這將指示問題出在哪裏。 – lynks

回答

19

大多數默認安裝的MySQL只會監聽本地計算機。

請在服務器上查找my.cnf中的bind-address設置,並確保它正在偵聽您的目標IP地址。您可能還需要確保skip-networking不是開啓!

或者(!少安全)以下將它設置爲監聽所有地址 - 本地和遠程:

bind-address = 0.0.0.0 
+0

感謝大家的幫助,讓我嘗試這一切,並相信這將解決我的問題 – Frank

3

嘗試添加用戶(USER-NAME)允許從IP連接:

mysql> GRANT ALL PRIVILEGES ON *.* TO [email protected] IDENTIFIED BY "PASSWORD"; 

USER-NAME是(如'widor') IP是遠程連接的公共IP地址(如'195.xyz')

當然,限制您想要授予的權限(ALL PRIVILEGES可能不是你的選擇)

+0

6年後,這已經超級有用,我已經正確設置了一切,只是沒有讓用戶訪問我需要的一切。 – Craig

2

在你嘗試使用PHP todo之前。打開你的終端或控制檯,然後輸入以下內容:

$的mysql -u用戶名-h x.xx.xx.x -p

然後輸入密碼

或Windows然後類型:

\路徑\到\ -u的mysql.exe用戶名-h x.xx.xx.x -p

然後輸入您的密碼

這會給你一個更詳細的響應,以作爲即將到來的認證問題。你可以100%確定你的IP地址的遠程登錄有效。如果它工作正常,那麼你的PHP代碼中的東西,你錯過了。