2013-03-06 140 views
2

下面的代码工作的本地服务器我无法连接到远程MySQL

<?php 
$con=mysqli_connect("localhost","username","userpass","dbname"); 
if (mysqli_connect_errno($con)) 
    { 
     echo "Failed to connect to MySQL: " . mysqli_connect_error(); 
    } 
?> 

上,但下面的代码不会远程服务器上运行:

<?php 
$con=mysqli_connect("IP_ADDR_HERE","username","userpass","dbname"); 
if (mysqli_connect_errno($con)) 
    { 
     echo "Failed to connect to MySQL: " . mysqli_connect_error(); 
    } 
?> 

错误显示为;

无法连接到MySQL:无法连接到“IP_ADDR_HERE” MySQL服务器(110)

我该如何解决这个问题,如果我没有访问服务器?

+0

这是一个服务器设置问题。仔细检查连接是否有效(未被防火墙/服务器阻止并正在侦听TCP/IP) – Raptor 2013-03-06 07:09:29

+0

因此,服务器和/或数据库不允许从服务器外部访问......!?! – deceze 2013-03-06 07:10:07

+0

如果您无法连接到共享主机上的MySQL,为什么有人会得到它? – 2013-03-06 09:16:32

回答

1

如果您使用的是Cpanel,请转到远程MySQL。在那里找到远程MySQL并点击添加你的IP来允许远程访问。然后重试连接,因为你正在做。这将允许你和你可以连接。

+0

@ user2131716 cPanel有时候不会选择我们的真实ip。使用[this](http://whatismyipaddress.com/)获取您的IP并允许此IP,然后重试。我长期以来也遇到同样的问题。我注意到我的IP有时以69.blah.blah.blah开头,这是不正确的,并允许这个IP永远不会让我连接。 – 2013-03-06 07:19:05

0

确保mysql服务器帐户允许连接来自%(通配符)而不是只有本地主机。

+1

恩,这是一个相当危险的事情.. – Daedalus 2013-03-06 07:12:23

+0

他可以用它作为故障排除,然后用静态主机替换它 – hitmanex 2013-03-06 07:13:22

+0

他可以,是的,并没有改变这一事实,这是一个非常危险的坏事做。你不应该建议这样的东西。相反,他需要允许来自他特定ip的外部连接。 – Daedalus 2013-03-06 07:15:04