我正在創建一個pdo數據連接。本地主機上的連接工作正常。 但是,當我連接到我的遠程數據庫,並使用完全相同的憑據,我以前用過,我得到一個空白頁面,沒有錯誤信息,只是一個空白頁面。SQLSTATE [HY000] [2002]操作超時
使用mysqli完成了與之前的項目相同的憑證,這是通過pdo完成的。
我試過兩種類型的pdo連接代碼,它們都不工作。
第一招:
$databaseHost = 'x.xxx.xxx.xx';
$databaseName = 'xxxxxxxxx';
$databaseUsername = 'xxxxxxx';
$databasePassword = 'xxxxxx';
$charset = 'utf8';
try {
$dsn = "mysql:host=$databaseHost;dbname=$databaseName;charset=$charset";
} catch(PDOException $e) {
echo 'Connection failed: ' . $e->getMessage();
}
$opt = [
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
PDO::ATTR_EMULATE_PREPARES => false,
];
$pdo = new PDO($dsn, $databaseUsername, $databasePassword, $opt);
第二個:
$databaseHost = 'x.xxx.xxx.xx';
$databaseName = 'xxxxxxxxx';
$databaseUsername = 'xxxxxxx';
$databasePassword = 'xxxxxx';
$opt = [
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
PDO::ATTR_EMULATE_PREPARES => false,
];
try {
$pdo = new PDO("mysql:host={$databaseHost};dbname={$databaseName}", $databaseUsername, $databasePassword, $opt);
} catch(PDOException $e) {
echo 'Connection failed: ' . $e->getMessage();
}
即使在本地主機都連接的工作,我想只要在瀏覽器本地加載此連接頁面,拳頭選項給了我此錯誤:
Fatal error: Uncaught PDOException: SQLSTATE[HY000] [2002] Operation timed out in /Applications/MAMP/htdocs/ijdb_pdo/config.php:24 Stack trace: #0 /Applications/MAMP/htdocs/ijdb_pdo/config.php(24): PDO->__construct('mysql:host=83.1...', 'u1164707_sohail', 'sohail123', Array) #1 {main} thrown in /Applications/MAMP/htdocs/ijdb_pdo/config.php on line 24
第二個選項給了我以下錯誤:
againtestConnection failed: SQLSTATE[HY000] [2002] Operation timed out
什麼是我在我的代碼搞亂?
我試圖再通過與終端連接:
MacBook-Pro-3:/ sohail$ /Applications/MAMP/Library/bin/mysql -h "xx.xxx.xxx.xx" -u "xxxxxx" "-pxxxxxxx" "xxxxxxx";
,並得到了以下錯誤:
Warning: Using a password on the command line interface can be insecure. ERROR 2003 (HY000): Can't connect to MySQL server on 'xx.xxx.xxx.xx' (60) MacBook-Pro-3:/ sohail$
我不認爲我有我的遠程計算機上的終端接入,所以我不能做SHOW GLOBAL VARIABLES LIKE'PORT'; cmd -thanks
MySQL可能在您的服務器上使用不同的端口號嗎? – Difster
我將如何能夠找出是否存在端口號。我有phpMyAdmin在服務器上運行。 我在mysqlWorkbench上本地工作,並且無法創建遠程連接,所以這可能是一個原因呢? – user2371684
如果您在服務器上有命令行訪問權限,請登錄到mysql命令行,然後鍵入:show variables; 端口號將在那裏。 – Difster