SSH上的端口3306是完美的,但不是当我使用PHP来做一个MySQL连接

我试图设置我的服务器来接受到MySQL的远程连接。 它现在可以在ssh中使用这个命令: mysql -u testuser -h my.ip.address.here -p但是当我尝试使用php进行mysqli连接时,出现错误消息:

 Can't connect to MySQL server on my.ip.address.here 

如果我使用mysql连接, Lost connection to MySQL server during query ,我将Lost connection to MySQL server during query

如果我telnet到我的IP地址在端口3306,我得到以下内容:

 Got packets out of order, connection to host lost 

我认为这将是直接的,很容易通过SSH连接。 我也可以使用HeidiSql程序进行连接。 我在IP地址上安装了Plesk,所以也许这是干扰,但我不会想象。

任何人有什么想法可能是错的?

如果你做sudo netstat -lntp | grep 3306 sudo netstat -lntp | grep 3306 ,到底是什么过程(最后)? 它是mysqld ,还是一些Plesk进程? 如果这是一个Plesk进程,那么您需要弄清楚如何将所有表加载到Plesk的MySQL实例中,或者找出如何停止Plesk的MySQL并将其所有数据加载到您的MySQL实例中。 mysqldump将成为你的朋友。

你的iptablesfilter是什么样的? 如果可以的话,试试iptables -I INPUT -p tcp --dport 3306 -d my.ip.address.here -s your.originating.ip.address -j ACCEPT 。 这将允许通过您使用的端口上的目标IP地址从您的IP地址到主机的stream量。

在/etc/my.cnf中,确保“skip-networking”没有被注释掉。