[英]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.