2015-01-10 28 views
-2

我試圖連接到遠程MySQL數據庫和我得到這個錯誤信息:爲什麼我的php代碼不能連接到我的遠程MySql數據庫?

警告:mysqli_connect():(HY000/2002):連接嘗試失敗,因爲連接的方沒有正確後響應一段時間,或建立的連接失敗,因爲連接的主機未能響應。在C:\ myLocalDiectory \ RemoteConn.php第9行「資源未找到」錯誤404

這裏,我試圖用我的PHP文件:

<?php 
    define("DB_SERVER", "serverName"); 
    define("DB_USER", "userName"); 
    define("DB_PASS", "password"); 
    define("DB_NAME", "dbName"); 


    $connection = mysqli_connect(DB_SERVER, DB_USER, DB_PASS, DB_NAME); 

    if(mysqli_connect_errno()) { 
      die("Database connection failed: " . 
      mysqli_connect_error() . 
      " (" . mysqli_connect_errno() . ")" 
    ); 
    } 
?> 

我缺少的東西?謝謝你的幫助!

+0

防火牆問題?許多託管公司不會讓您遠程連接。 – GolezTrol

+0

遠程mysql服務器可能位於防火牆後面 –

回答

2

我會檢查的第一件事(如果您還沒有這樣做的話)是,您實際上可以從運行PHP腳本的計算機連接到數據庫。這可以排除網絡或防火牆問題。

第一件事就是ping服務器。在DOS提示符下運行:

ping servername 

其中「servername」與您在上面的PHP腳本中放置的字符串相同。如果這不符合類似下面的一個字符串回覆,具體而言,第一個字是不是「回覆」:

Reply from 192.168.239.132: bytes=32 time=101ms TTL=124 

這意味着最有可能出現運行PHP腳本的計算機之間沒有連接的中MySQL服務器。然後,我會檢查服務器和計算機是否正確連接到網絡,服務器是否啓動,如果您的計算機上沒有運行PHP腳本或服務器上的防火牆。

現在,如果上面的測試顯示「回覆」ping,您可以測試是否可以連接到您的PHP服務器的Mysql服務。爲此,您可以使用Mysql工作臺(http://dev.mysql.com/downloads/workbench/),然後從中創建與您提供給腳本的數據庫參數的連接。如果您無法連接到Mysql工作臺,則可能需要禁用Mysql服務器中的防火牆,運行PHP的計算機中的防火牆,或者啓用Mysql服務器以接受您在PHP腳本中使用的數據庫和用戶名的遠程連接(一些發行版的Mysql服務器安裝爲僅接受本地連接以實現安全)。

如果問題出在服務器許可(用戶只能從例如遠程計算機本地,但無法連接),則可以實現與GRANT命令在MySQL服務器的權限:http://dev.mysql.com/doc/refman/5.1/en/grant.html

+0

謝謝,託管服務提供商改變了防火牆設置。 – CloudyKooper

-1
define("DB_USER", "userName"); 

嘗試root代替userName和定義DB_HOST

+1

我認爲這對我們所有人來說都是合乎邏輯的,他使用它作爲佔位符,所以我們沒有看到他的憑據......「 – Neat

+0

*」並定義DB_HOST「* - 它可能是「BUGS_BUNNY」或甚至「DAFFY_DUCK」。沒關係,只要他們按照正確的順序設置即可。主機/用戶/密碼/分貝 –

相關問題