在正确设置完所有内容后无法远程连接到MySQL

时间:2014-12-19 15:50:41

标签: php mysql database-connection

我在远程连接到MySQL数据库时遇到问题。

我目前的设置如下:我有一台Windows 2008 Server在工作,放在路由器后面(固定IP)。路由器配置了DMZ到服务器,它完全适用于我测试的其他一切,包括Web服务器,VPN,FTP等...服务器的防火墙打开到相应端口上的必要服务。我可以很好地telnet到所有这些端口。

我唯一无法工作的是远程连接到MySQL数据库。我已经完成了以下所有工作:

  • 将端口3306转发到服务器(通过DMZ);
  • 将MySQL配置为绑定到0.0.0.0:3306(它在不提供bind-address时自动执行此操作);
  • 在MySQL中配置一个用户帐户,可以访问localhost;
  • 使用'%'的访问权限配置相同的用户帐户(同名,密码,权限);
  • 在Windows Server的防火墙中打开端口3306。

我随后尝试从托管的Web服务器(Internet上的其他位置)执行PHP脚本:

<?php
// Create connection
$conn = new mysqli(<host>, <username>, <password>);

// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
} 
echo "Connected successfully";
?>

<host><username><password>是相应且正确的凭据。

此脚本只是在没有回复的情况下超时,并提供预期的错误Connection failed: Can't connect to MySQL server on '<host>' (110)。我也不能在端口3306上telnet。从localhost连接工作正常。

我不知道还有什么我忘了或做错了。我错过了什么?

我需要此连接才能将我的“备份系统”集中在托管的Web服务器上。我可以在mysql主机上本地运行我的“备份系统”,但这使得从中心点管理它变得更加困难。除此之外,我想让它真正了解发生了什么。我讨厌不要让这种事情发挥作用。

感谢任何对可能出现的问题有所了解的人。

0 个答案:

没有答案