Windows Server 2008上ZF3中的“每个套接字地址只有一次使用”错误

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

我正在将Zend Framework 3应用程序的DBAL迁移到Doctrine。完成数据检索部分的迁移。数据保存仍然是Zend\Db驱动。

现在我想将新版本部署到服务器并收到此错误:

[PDOException:SQLSTATE [HY000] [2002]通常只允许使用每个套接字地址(协议/网络地址/端口)。在D:\ Path \ to \ my-project \ vendor \ zendframework \ zend-db \ src \ Adapter \ Driver \ Pdo \ Connection.php:266

我的本地Debian虚拟机上不会发生错误,但只有在Windows Server上运行PHPUnit时才会发生。

刚刚看了一下Zend\Db\Adapter\Driver\Pdo\Connection.php:266。这是Zend\Db尝试创建新连接的地方。

由于之前没有观察到这个问题,我认为它与(部分)迁移到Doctrine有关。也许应用程序没有关闭为Zend\Db打开的数据库连接,并尝试打开一个与Doctrine完全相同的设置的新连接。反之亦然:打开Doctrine的PDO连接,同时框架尝试为Zend\Db打开一个新的连接。

如何解决这个问题并使用Doctrine和Zend\Db

php mysql pdo windows-server-2008 zend-db
1个回答
0
投票

我也一直在使用PDO。我对它的研究表明,这与MySQL或PHP无关,但与Windows有关。你提出的请求太快了。当Windows关闭一个端口时,它将它置于time_wait状态最多240秒(默认),并且该端口在超出time_wait状态之前不能使用。

related to this stack overflow question from 2012:

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