繁体   English   中英

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

[英]Can't connect to remote SQL database in PHP, but remote access is set up and confirmed working

我正在尝试学习在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访问服务器不会有任何问题,因为该用户被授予对%的访问权限,并且我已经确保它确实能够从users表中未明确允许的多个IP访问SQL Server。 我还尝试了不同的用户,包括root用户,并且都给出了相同的连接错误。

我已经花了几个小时环顾四周,但老实说我找不到合适的答案,非常感谢您的帮助!

这可能是由我的虚拟主机引起的吗? 我已经在HostGator网络主机以及whois.com主机上尝试了此脚本,并且都给出了相同的错误。 他们可能会阻止PHP脚本连接到远程数据库吗?

您是否尝试过从Web主机远程登录到3315上的服务器?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM