我試圖使用PHP代碼連接到遠程服務器數據庫(mysqli的)mysqli_connect():(HY000/2002)無法連接,遠程服務器
$host = 'myIP:3306';
$user = 'root';
$pass = 'pass';
$conn = mysqli_connect("$host", "$user", "$pass");
//check connection
if (mysqli_connect_errno())
{
echo "Error: " . mysqli_connect_error();
}
我用MYIP/phpMyAdmin來進行數據庫我用putty來檢查mysql是否正常運行。我也在我的服務器上檢查了默認的mysql端口,這是默認的(3306)。
給出的錯誤被描述爲連接失敗/超時/無響應。
我也嘗試使用PDO而不是mysqli,但它給了我相同的結果。所有其他的例子,我可以找到關於localhosts和在這些帖子中給出的解決方案的地方是使用套接字路徑來連接(這似乎不像我的解決方案,因爲它是遠程..)。
這是一個由學校提供的linux服務器。 任何想法?提前致謝。
聽起來像是一些防火牆阻止了請求。 – arkascha
如果您正在運行Linux,則可以向防火牆添加例外。在Ubuntu中,這是'$ ufw allow 3306'。 – Ben
嘗試'telnet myIp 3306'。如果無法連接,那麼你知道有一個網絡問題。超時=防火牆默默丟棄數據包。連接被拒絕=沒有監聽到該ip:端口或防火牆主動拒絕連接。 –