Php mysqli_connect():(HY000/2002)连接失败,远程服务器

Php mysqli_connect():(HY000/2002)连接失败,远程服务器,php,mysql,mysqli,Php,Mysql,Mysqli,我正在尝试使用PHP代码(mysqli)连接到远程服务器数据库 我使用myIP/phpmyadmin创建了一个数据库,并使用putty检查mysql是否正确运行。我还检查了服务器上mysql的默认端口,即默认端口(3306) 给出的错误被描述为连接失败/超时/无响应 我也试着用PDO代替mysqli,但它给了我同样的结果。我能找到的关于localhosts的所有其他示例以及这些文章中给出的解决方案都是使用socketpath进行连接(这对我来说似乎不是一个解决方案,因为它是远程的..) 这是学校

我正在尝试使用PHP代码(mysqli)连接到远程服务器数据库

我使用myIP/phpmyadmin创建了一个数据库,并使用putty检查mysql是否正确运行。我还检查了服务器上mysql的默认端口,即默认端口(3306)

给出的错误被描述为连接失败/超时/无响应

我也试着用PDO代替mysqli,但它给了我同样的结果。我能找到的关于localhosts的所有其他示例以及这些文章中给出的解决方案都是使用socketpath进行连接(这对我来说似乎不是一个解决方案,因为它是远程的..)

这是学校提供的linux服务器。 有什么想法吗?提前感谢。

使用mysqli_connect(),您可以使用6个参数:

host, username, password, dbname, port, socket
主机和端口是分开的

尝试使用:

$conn = mysqli_connect("myIP", "$user", "$pass", "dbname", "3306");

另外,默认端口是3306,因此您甚至可能不需要提供它

听起来像是中间的防火墙阻止了请求。如果你正在运行Linux,你可以在防火墙中添加一个例外。在Ubuntu中,这是
$ufw allow 3306
。试试
telnet myIp 3306
。如果这也无法连接,那么您就知道存在网络问题。超时=防火墙自动丢弃数据包。connection Rejected=未在该ip:端口上侦听任何内容,或防火墙主动拒绝连接。据我所知,我的小组尚未对防火墙进行任何配置,可能是在我们收到防火墙之前由老师完成的,但无论如何。使用命令$ufw allow 3306似乎可以使用putty进行工作。但是2002年仍然存在相同的错误。您的MySQL用户帐户允许远程连接吗?
$user
$pass
周围的引号是无用的。@Jocelyn正确的,我刚从他的代码中复制了它
$conn = mysqli_connect("myIP", "$user", "$pass", "dbname", "3306");