未知的MySQL服务器主机(PHP)

9ceoxa92  于 2023-03-07  发布在  PHP
关注(0)|答案(5)|浏览(193)

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

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 网站托管公司托管我的数据库。

x8diyxa7

x8diyxa71#

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

vktxenjb

vktxenjb2#

如果您使用此代码:

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

您可以尝试写入没有端口的主机
即:

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

gfttwv5a3#

    • 请注意AWS安全组:**

在我的例子中,我可以通过Telnet从我的计算机连接到RDS,也可以通过Mysql Workbench连接,但我不能从与RDS位于同一VPC中的EC2示例连接。
解决方案是:
1.我已经为RDS创建了一个安全组(exampl1),并将其分配给了该安全组。
1.我已经为EC2创建了一个安全组(exampl2),并将其分配给该安全组。
而且我还将RDS安全组(示例1)分配给了EC2。〈〈这让我省了不少力气。
信息:如果您的EC2已分配2个或更多安全组,则在RDS安全组中,入站源必须创建与分配给您的EC2的安全组数量相同的规则。
亚马逊文档说:
VPC中的EC2示例与DB示例共享相同的VPC安全组。http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Overview.RDSSecurityGroups.html

2admgd59

2admgd594#

我知道这是个老问题,但我今天遇到了同样的问题,我找到的答案都不对。
在我的例子中,问题是端口3306在防火墙上没有打开,我试图从外部服务器连接到内部MySQL数据库。
我不知道为什么它给你的错误是“未知主机”在这种情况下。我本来以为更像“无法连接。”或“连接拒绝。",但使用完全相同的代码从内部服务器工作正常,使我得出这个结论。

inb24sb2

inb24sb25#

确保你没有包含“http://”部分。我在我的.env文件中使用http://example.com。当我把它保留为example.com时,它工作了。

相关问题