未知的MySQL服务器主机

时间:2012-01-20 08:39:07

标签: php mysql

尝试连接到我的数据库服务器时,遇到未知主机的问题:

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 网站托管公司。

5 个答案:

答案 0 :(得分:22)

通常情况下,名称解析在主机上不起作用。如果您的连接目标始终相同,则可能需要使用其IP地址进行连接。

答案 1 :(得分:7)

如果您使用此代码:

$Mysqli= new mysqli('mysql2.servidoreswindows.net:3306',
                    'usu', 'pass', 'dbname');

您可以尝试编写没有端口的主机

那是:

$Mysqli= new mysqli('mysql2.servidoreswindows.net', 'usu', 'pass', 'dbname');

答案 2 :(得分:7)

请关注AWS安全组:

在我的情况下,我可以从我的计算机连接到RDS抛出Telnet和 我可以连接抛出Mysql Workbench但我无法连接 我的EC2实例与RDS位于同一个VPC中。

解决方案是:
1.我为RDS创建了一个安全组(例如)并分配给它 2.我为EC2创建了一个安全组(例如)并分配给它 我也将RDS安全组(例如)分配给EC2。的<<这节省了我。

信息:如果您的EC2已分配了2个或更多安全组,则在RDS安全组中,入站源必须创建规则,因为许多安全组都已分配了EC2。

  

亚马逊文档说:
  VPC中的EC2实例与数据库实例共享相同的 VPC安全组。   http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Overview.RDSSecurityGroups.html

我整天都在搜索文档 我希望这能帮到你。

答案 3 :(得分:2)

我知道这是一个老问题。但是今天我遇到了同样的问题,我找到的答案都不是正确的。

我的案例中的问题最终是我们的防火墙上没有打开端口3306,我试图从外部服务器连接到内部mysql数据库。

我不确定为什么它给你的错误是“Unknown Host”。我本来期待更像“无法连接”的东西。或“连接被拒绝。”,但使用内部服务器完全相同的代码工作正常,导致我得出这个结论。

答案 4 :(得分:0)

确保您不包含“http://”部分。我在http://example.com文件中使用了.env。当我把它作为example.com离开时,它起作用了。