[mysqli连接尝试大约20秒后失败

问题描述 投票:0回答:1

我正在尝试使用XAMPP v3.2.2在32位Windows 10平板电脑上运行,在家中设置Web服务器。它具有:-Apache / 2.4.38(Win32)-PHP版本7.3.2-mysql Ver 15.1 Distrib 10.1.38-MariaDB,用于Win32(AMD64)

我的域的DNS设置包括A记录,指向www.mydomain.mytld@.mydomain.mytld的外部IP(分配给ISP,并且多年来相同)。

已在我的路由器中设置了端口80到服务器的端口转发。

Apache的httpd.conf文件包括一个部分:

<VirtualHost *:80>
    ServerName www.mydomain.mytld
    ServerAlias *.mydomain.mytld
</VirtualHost>

在MySQL中,数据库用户username拥有从SELECT访问的DELETEINSERTUPDATEdatabaselocalhost特权。

在.php文件中,我使用以下方式连接到数据库:

$dbUrl = "127.0.0.1";
$dbUser = "username";
$dbPass = "password";
$dbName = "database";
$db = new mysqli($dbUrl, $dbUser, $dbPass, $dbName);

当我在服务器本身(使用http://127.0.0.1/)上访问此文件时,此方法工作正常。当我使用服务器的网络地址(http://192.168.178.35/)从家庭网络中的另一台计算机访问同一计算机时,它也可以正常工作。当我使用外部(ISP分配的)IP地址从家庭网络中的另一台计算机访问同一计算机时,它也可以正常工作。

但是...当我使用域名尝试相同操作时,它失败:“警告:mysqli :: __ construct():(HY000 / 2002):连接尝试失败,因为经过一段时间后被连接方未正确响应时间或建立的连接失败,因为连接的主机无法响应。”在$db = new mysqli(...语句中。

我已经尝试过localhost,甚至是服务器的网络地址(192.168.178.35)都为$dbUrl,还尝试了包括端口号3306,但都无济于事。也尝试过root用户具有所有特权,结果仍然相同。

同一服务器上不使用数据库的其他页面(.html和.php),使用我的域名也可以正常工作。

[在互联网上的某个地方,我发现也许可以通过用#注释掉::1 localhost文件中的%WINDIR%\system32\drivers\etc行来解决,但是该行已经在我的主机文件中被注释掉了。

由于使用我的外部IP地址,一切正常,只是不使用我的域名,我希望我只是在许多配置文件之一中的某些地方缺少某些指令,但是我找不到我要的内容。缺少。

任何想法,有人吗?预先感谢。

php mysql apache mysqli database-connection
1个回答
0
投票

我发现了问题。

[愚蠢的我监督了一些过时的代码,这些代码根据$ _SERVER [“ SERVER_NAME”]的信息,在赋值语句和mysqli对象的创建之间更改了$ dbUrl变量值。我删除了旧代码,现在可以正常使用。

谢谢大家,花时间阅读此问题,对不起,浪费您的时间。

© www.soinside.com 2019 - 2024. All rights reserved.