[英]Unknown MySQL server host
在嘗試連接到我的數據庫服務器時,我遇到了未知主機的問題:
Warning: mysqli::mysqli() [mysqli.mysqli]: (HY000/2005): Unknown MySQL server host 'xxxxxxxxxxxxx:port' in index.php on line 18
第 18 行是我嘗試請求連接 MySQL 服務器的那一行:
$this->db = new mysqli($db_host, $db_user, $db_psw, $db_name);
我在1&1網站托管公司托管我的數據庫。
當名稱解析在主機上不起作用時,通常會出現這種情況。 如果您的連接目標始終相同,則您可能希望使用其 IP 地址進行連接。
如果您使用此代碼:
$Mysqli= new mysqli('mysql2.servidoreswindows.net:3306',
'usu', 'pass', 'dbname');
你可以嘗試寫沒有端口的主機
那是:
$Mysqli= new mysqli('mysql2.servidoreswindows.net', 'usu', 'pass', 'dbname');
請注意 AWS 安全組:
在我的情況下,我可以通過 Telnet 從我的計算機連接到 RDS,也可以通過 Mysql Workbench 連接,但我無法從與 RDS 位於同一 VPC 內的 EC2 實例連接。
解決方案是:
信息:如果您的 EC2 已分配 2 個或更多安全組,則在 RDS 安全組中,入站源必須創建規則,因為您的 EC2 已分配了多個安全組。
亞馬遜文檔說:
VPC 中的 EC2 實例與數據庫實例共享同一個VPC 安全組。 http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Overview.RDSSecurityGroups.html
我知道這是一個老問題。 但是我今天遇到了同樣的問題,我找到的答案都不是正確的。
我的問題最終是我們的防火牆上沒有打開端口 3306,我試圖從外部服務器連接到內部 mysql 數據庫。
我不確定為什么在這種情況下它給你的錯誤是“未知主機”。 我本來期待更像“無法連接”的東西。 或“連接被拒絕。”,但使用來自內部服務器的完全相同的代碼工作正常,導致我得出這個結論。
確保您不包括“http://”部分。 我在.env
文件中使用了http://example.com
。 當我將其保留為example.com
時,它起作用了。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.