我正在PHP下開發一個Web應用程序與遠程數據庫,其中我有以下測試腳本:SQLSTATE [HY000] [2003]無法連接到MySQL服務器'XXX.XXX.XXX.XXX'(60)
try {
$dbh = new PDO('mysql:host=XXX.XXX.XXX.XXX;dbname=db_app;', $user, $password);
$date = ($dbh->query('SELECT NOW()');
print_r($date);
} catch (PDOException $e) {
print "Error!: " . $e->getMessage() . "<br/>";
die();
}
exit();
,當我運行它,我得到以下的輸出:
錯誤!:SQLSTATE [HY000] [2003]無法連接到'10 MySQL服務器.16.50.87' (60)
我仍然可以連接使用MySQL工作臺和命令行界面將數據傳輸到目標數據庫。
從this question我得到遠程服務器配置「可能是」的問題。然而,我們有一個連接到同一個服務器的「兄弟」PHP應用程序沒有問題,唯一的區別就是用戶名和密碼,甚至當使用「兄弟」PHP應用程序證書在我的應用程序上運行測試時,同樣的錯誤被顯示。所以似乎只有我的PHP似乎有問題。
我正在PHP 5.5.3上運行測試,目標服務器正在運行MySQL 5.5 我的應用程序和Brother應用程序都在Staging Server A上運行,並且都應該連接到Staging Server B中的MySQL。 Brother應用程序也是用PHP編寫的,能夠連接,但我的不是。我猜它可能是一個MySQL相關的PHP配置。
我的應用程序使用
PDO
,而弟弟應用程序使用mysqli
。兄弟應用程序與我的應用程序 運行在同一臺服務器上,並連接到同一臺目標服務器。
任何幫助,將不勝感激。
你寫的「我仍然可以連接到使用MySQL工作臺,並通過命令行界面目標數據庫」 - 使用完全相同的用戶名和密碼完全一樣的系統?試圖排除明顯的... – Kryten
*「'('SELECT NOW()')as $ row)'」* ---我沒有把握什麼。 –
您是否檢查了包含數據庫服務器憑證的兩個文件的編碼?也許你的密碼使用了一些奇特的非ASCII字符...... – CodeZombie