无法连接到PHP中的远程SQL数据库,但远程访问已设置并确认可以正常工作

时间:2014-10-30 02:56:47

标签: php mysql sql-server database remote-access

我试图学习在PHP中使用SQL的东西,但我只是在连接到我的数据库时遇到了问题。

数据库几乎肯定会在某种程度上使用远程访问。我暂时禁用了iptables(我知道,坏坏了!),所以没有防火墙阻止访问。我正在使用的MySQL用户被配置为能够从任何IP连接。 SQL服务器正在正确侦听所有连接,并在Linux专用服务器上运行。

[root@1742CC-XEON ~]# netstat -lpnut | grep mysql
tcp        0      0 0.0.0.0:3315                0.0.0.0:*                   LISTEN      3915/mysqld

我还使用完全相同的凭据成功远程连接到我的Java数据库,如下所示:

        Class.forName("com.mysql.jdbc.Driver");
        Connection conn = DriverManager.getConnection("jdbc:mysql://__ip__:_port_/_dbname_", "username", "password");
        System.out.println("Connection established.");

这个功能很好,我可以成功运行查询等。由于我现在禁用了iptables,这个连接在任何有Java和Java SQL连接器的地方都可以正常工作。

现在,我尝试在PHP中连接到同一个数据库:

        $db = mysqli_connect($sql_host, $sql_user, $sql_pass, $sql_db, $sql_port);

此连接因以下错误而失败:

Warning: mysqli_connect(): (HY000/2003): Can't connect to MySQL server on 'xx.xx.xx.ip' (111)

请注意,$ sql_user,$ sql_pass,$ sql_host等与Java连接中使用的凭据完全相同,因此用户无法访问服务器的任何问题都不应该存在。一个新的IP,因为该用户被授予对%的访问权限,并且我确保它确实能够从用户表中未明确允许的多个IP访问SQL服务器。我也尝试过不同的用户,包括root用户,并且都会给出相同的连接错误。

我花了几个小时环顾四周,但老实说,我找不到任何看似正确答案的东西,非常感谢任何帮助!

这可能是由我的虚拟主机引起的吗?我在HostGator webhost以及whois.com托管上尝试过这个脚本,两者都给出了同样的错误。他们可能会阻止PHP脚本连接到远程数据库吗?

1 个答案:

答案 0 :(得分:0)

您是否曾尝试通过网络托管服务器远程登录服务器3315?