簡體   English   中英

在某些網絡上無法通過 PDO 連接到 Mysql

[英]Unable to Connect to Mysql Through PDO on Certain Networks

我正在嘗試通過 PHP 的 PDO 連接到 MySQL 數據庫。 它在我的家庭網絡和其他一些網絡(咖啡店、公共互聯網)上運行良好。 當我嘗試通過手機的個人熱點或酒店 wifi 連接時,它不再有效。

我使用相同的機器設置(XAMPP VM - Mac)在所有這些中使用相同的登錄信息。 這是我的連接文件:

$DBO = "mysql:host=$DB_Servername;dbname=$DB_Name";

try {
    $conn = new PDO($DBO, $DB_Username, $DB_Password);

    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
    echo "Connection Failed: " . $e->getMessage();
}

這是我得到的錯誤:

Connection Failed: SQLSTATE[HY000] [2002] Connection timed out

我已經嘗試了帶有網站地址和 IP 地址的服務器名稱。 奇怪的是,當我使用 VS code 數據庫擴展時,我能夠很好地連接到數據庫(無論我在哪個網絡上)。 我不知道為什么那會起作用,但 PDO 不會。

我讀了這個關於在“mysql:”之后添加空格的答案,它返回了這個新消息:

Connection Failed: SQLSTATE[HY000] [1045] Access denied for user 'dailyrts_realDB'@'localhost' (using password: YES)

我登錄的用戶帳戶已分配給正確的數據庫,並且正在注冊我連接的新 IP。

dns_get_record 返回:

dns_get_record(): A temporary server error occurred.

但是,我無法使用 XAMPP-VM 找到修復程序,但在 MacOS 上使用應用程序的 XAMPP 安裝程序版本時,相同的代碼可以完美運行。 我環顧四周,看看是否有其他人遇到這個問題,但我沒有找到任何與這個問題特別匹配的東西。 大多數是指連接到本地數據庫。

這個關於通過 root 用戶訪問 MySQL 的答案非常接近我遇到的問題,他們建議按照本指南解決問題。 我不需要安裝 VM 版本,所以我自己沒有測試過,但它似乎對他有用。

我不確定為什么 VM 版本在連接到 MySQL 數據庫時只能在某些網絡上運行,而在其他網絡上則不能。 我確信這與網絡端的端口阻塞有關(移動熱點提供商因阻塞端口而臭名昭著),並且因為 VM 版本處理網絡流量的方式與常規版本不同。

看起來 VM 版本的問題與 MacOS 上 的這個特定問題無關 根據我的個人經驗(和其他人),如果可以的話,我建議您使用安裝程序版本。 它更加發達,並且圍繞它有更多的在線支持。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM