Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/296.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP MySQLi提供外部连接错误,但可以从其他来源连接_Php_Mysql_Mysqli - Fatal编程技术网

PHP MySQLi提供外部连接错误,但可以从其他来源连接

PHP MySQLi提供外部连接错误,但可以从其他来源连接,php,mysql,mysqli,Php,Mysql,Mysqli,我正在将服务器从共享主机服务器迁移到VPS。作为转换的一部分,我希望在我完全切换站点和DNS记录之前,让当前正在运行的站点开始使用新服务器上的数据库 新服务器已启动并运行mysql,我可以从服务器连接本地和本地,也可以使用iMac上的Sequal Pro应用程序作为外部连接进行连接。当我在PHP脚本中使用相同的细节进行连接时,尽管在共享托管服务器上,我得到了一个(2002)Connection refureddb:0错误 PHP脚本看起来像 $servername = "SERVERIP"; $

我正在将服务器从共享主机服务器迁移到VPS。作为转换的一部分,我希望在我完全切换站点和DNS记录之前,让当前正在运行的站点开始使用新服务器上的数据库

新服务器已启动并运行mysql,我可以从服务器连接本地和本地,也可以使用iMac上的Sequal Pro应用程序作为外部连接进行连接。当我在PHP脚本中使用相同的细节进行连接时,尽管在共享托管服务器上,我得到了一个
(2002)Connection refureddb:0
错误

PHP脚本看起来像

$servername = "SERVERIP";
$usernamedb = "USERNAME";
$passworddb = "PASSWORD";
$dbname = "DBNAME";

$conn = new mysqli($servername, $usernamedb, $passworddb, $dbname, 3306);

if ($conn->connect_errno) {
    echo "Failed to connect to MySQL: (" . $conn->connect_errno . ") " . $conn->connect_error;
}
我已经检查了
/var/log/mysql/error.log
,没有记录任何问题。它必须是PHP连接,而不是VPS/MySQL端,因为我可以使用Sequal Pro从我的家庭互联网连接进行连接,而不会出现问题,因此服务器明确允许使用这些用户名、密码和数据库名称详细信息从外部源进行连接


我将端口号添加到
新的mysqli
语句中,以防共享主机的默认设置有所不同,但使用或不使用端口号都没有区别。

从注释中,我们知道它在客户端框上的命令行失败,但在个人框上的命令行(GUI,技术上)起作用。我们还从这些评论中知道,它不是SELinux或IPTables。因此,它必须是:

  • 除SELinux或IPTables之外的客户端上的系统/操作系统级别设置,或
  • 客户端和服务器之间的路由器/防火墙
是时候使用较低级别(如IP)的工具了。或者,如您所发现的,联系上游网络管理员

用一位著名侦探的话说:

一旦你消除了不可能,剩下的一切,无论多么不可能,都必须是真相


您是否正在运行SELinux(请尝试
sestatus
)?如果是这样,还可以尝试
sudo setemforce 0
暂时禁用强制。尝试使用shell命令行mysql从共享主机连接到VPS数据库。这样有时会得到更好的错误消息。这也测试了混合中没有PHP的情况。您是否已经将my.cnf中的bind address参数设置为0.0.0。0@YouneL是 啊正如我所说,外部连接似乎不是问题,因为我可以从家庭网络连接到VPS,我只是无法从共享主机连接。@我与共享主机提供商联系,他们似乎在路由器级别阻止了连接。他们已经解除了它的封锁,现在它可以工作了。你想把它变成一个答案(检查安全+检查主机),我可以标记它正确吗?