首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >mysqli通过IP地址连接,但不使用主机名。

mysqli通过IP地址连接,但不使用主机名。
EN

Stack Overflow用户
提问于 2015-04-03 06:09:10
回答 1查看 3K关注 0票数 0

我在远程主机上测试了mysqli的运行,使用IP地址很好,但它不能使用完全限定的域名。正确的DNS映射,我可以使用浏览器浏览页面,并且ping也成功。

$mysqli =新的mysqli("www.testdomain.com“、"uname”、"passwd“、"database");

有什么建议吗?mysql正在Centos 6上运行

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-04-03 14:52:00

首先,除非您有特殊的理由必须在www.之前添加testdomain.com(例如,testdomain.comwww.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“,然后您可以在右侧面板上编辑防火墙设置。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29427072

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档