我在远程主机上使用mysqli进行了测试,可以使用IP地址正常运行,但不能使用完全限定的域名。DNS正确映射,我可以使用浏览器浏览页面并且ping也成功
$ mysqli =新的mysqli(“ www.testdomain.com”,“ uname”,“ passwd”,“数据库”);
有什么建议 ?mysql在Centos 6上运行
首先,除非你有特别的原因,你必须添加www.
之前testdomain.com
(例如,testdomain.com
和www.testdomain.com
都指向不同的地址),请再试一次,而www.
在你的主机名。
尝试nslookup testdomain.com
在托管您的php应用程序的计算机上运行(或编写php脚本并调用gethostbyname),看看php是否可以从给定的主机名中找到正确的IP地址。
如果您从上一步获得的IP地址与您尝试的IP地址不同,请尝试解决DNS解析问题,或/etc/hosts
在托管您的php应用程序的计算机上编辑文件,然后指向testdomain.com改正IP地址。某些服务器可能绑定了多个IP地址,但MySQL服务器仅侦听其中一个,请/etc/mysql/my.cnf
在托管MySQL服务器的机器上检查并查找bind 1.2.3.4
(或其他主机名/ IP地址)。如果您还不知道,默认情况下,MySQL服务器仅接受来自localhost的连接。
如果您的MySQL服务器配置为侦听特定的主机名/ IP地址,请尝试绑定到0.0.0.0,以便您的MySQL服务器允许来自所有来源的连接。也可能有防火墙阻止来自其他来源的连接。这是检查CentOS上防火墙配置的方法。
如果您的php脚本可以解析testdomain.com
,请尝试使用mysql命令行客户端从托管您的php应用程序的计算机连接到您的数据库。mysql -h testdomain.com -u uname -p
。命令行客户端可能会为您提供有关连接失败原因的更多信息。
我不确定您是使用托管的VPS服务(例如Amazon EC2)还是拥有自己的服务器计算机,但是Amazon EC2确实提供了现成的防火墙,称为“安全组”。登录到EC2控制台,然后单击左侧面板上的“安全组”,然后可以在右侧面板上编辑防火墙设置。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句