2013-12-23 69 views
1

我想連接到使用PHP連接的另一臺服務器上的MySQL數據庫。我收到以下錯誤,無法弄清楚。使用php的跨服務器的mysqli連接錯誤

這是錯誤的時候我包括端口:

警告:mysqli_connect()[function.mysqli-連接]:(HY000/2005): 未知MySQL服務器主機「xxxxxx.db 0000095.hostedresource.com:3306' (25)in /home/xxxxxx/public_html/tools/include/db_connect.php on line 3無法連接到MySQL:未知的MySQL服務器主機 'xxxxxxxx.db.0000095。 hostedresource.com:3306'(25)


這是不使用的端口時,我的錯誤:

警告:mysqli_connect()[function.mysqli-連接]:(HY000/2003): 未知MySQL服務器主機「xxxxxx.db。 0000095.hostedresource.com' (110)in /home/xxxxxx/public_html/tools/include/db_connect.php on line 3無法連接到MySQL:未知MySQL服務器主機 'xxxxxxxx.db.0000095.hostedresource.com '(110)


這是我db_connect文件:

<? 
$con=mysqli_connect("xxxxxx.db.0000095.hostedresource.com","xxcorrectxx","xxcorrectxx", 
"xxcorrectxx"); 

if (mysqli_connect_errno()) 
{ 
    echo "Failed to connect to MySQL: " . mysqli_connect_error(); 
} 
?> 


這是我有包括文件服務器上的可能防火牆的問題? 這個db連接文件在我擁有的其他域上工作正常。 請告訴我,如果你能看到這個修復。謝謝。

+0

我認爲MySQL主機中的xxxxxx部分需要用實際值替換。 –

+0

您連接的web服務器是否有權限連接到目標sql數據庫服務器?你是否爲主機創建了具有'%'的db用戶? – Latheesan

+0

@AmalMurali GoDaddy共享主機去掉了敏感/解析的主機名/用戶信息。 –

回答

4

可能是流量被防火牆阻止。

通常MySQL端口不對公衆開放;它僅適用於本地網絡。此外,DB用戶可能擁有localhost或IP用戶,而不是MySQL用戶權限表中的任何主機(%)。

您可以通過telnet驗證遠程服務器上的3306端口。

+0

我曾嘗試通過Navicat連接3306,但後來又遇到了這個問題。然後我運行了cPanel界面,所以我有一個GUI可以使用,並且工作。 +1 –

0

根據documentation of mysqli_connect()該端口是一個附加參數。

$con=mysqli_connect("xxxxxx.db.0000095.hostedresource.com", 
    "xxcorrectxx","xxcorrectxx", "xxcorrectxx", 3306); 
+0

可選參數,[3306爲默認mysql](http://stackoverflow.com/a/3736420/46675)。 –

+0

我即將補充說,這不應該是nessecary,因爲3306是默認端口。 –