我在远程主机上测试了mysqli的运行,使用IP地址很好,但它不能使用完全限定的域名。正确的DNS映射,我可以使用浏览器浏览页面,并且ping也成功。
$mysqli =新的mysqli("www.testdomain.com“、"uname”、"passwd“、"database");
有什么建议吗?mysql正在Centos 6上运行
发布于 2015-04-03 14:52:00
首先,除非您有特殊的理由必须在www.之前添加testdomain.com(例如,testdomain.com和www.testdomain.com指向不同的地址),否则请在主机名中不使用www.再试一次。
在承载您的php应用程序的机器上尝试nslookup testdomain.com (或者编写php脚本并调用地质名称),查看php能否从给定主机名中找到正确的IP地址。
如果您从最后一步获得的IP地址与您尝试的IP地址不同,请尝试解决DNS解析问题,或在承载您的php应用程序的计算机上编辑/etc/hosts文件,并指向testdomain.com更正IP地址。有些服务器可能有多个IP地址绑定到它们,但是MySQL服务器只侦听其中一个地址,在主机上检查MySQL服务器上的/etc/mysql/my.cnf并查找bind 1.2.3.4(或其他主机名/IP地址)。如果您还不知道,MySQL服务器默认只接受来自本地主机的连接。
如果您的MySQL服务器配置为侦听特定主机名/IP地址,请尝试绑定到0.0.0.0,以便您的MySQL服务器允许来自所有源的连接。此外,还可能存在防火墙阻塞来自其他来源的连接。下面是如何检查CentOS上的防火墙配置。
如果您的php脚本可以解析testdomain.com,请尝试使用mysql命令行客户端从承载您的php应用程序的计算机连接到数据库。mysql -h testdomain.com -u uname -p。命令行客户端可能向您提供有关连接失败原因的更多信息。
我不确定您是在使用托管的VPS服务,如Amazon,还是您有自己的服务器机器,但是AmazonEC2确实提供了开箱即用的防火墙,它被称为“安全组”。登录到您的EC2控制台,然后单击左侧面板上的"Security“,然后您可以在右侧面板上编辑防火墙设置。
https://stackoverflow.com/questions/29427072
复制相似问题