$db = new mysqli("p:10.0.0.1", "user", "pass");
我看了下面的问题:
还有其他一些。它们都与我的问题不同:它们要么有长时间运行的脚本或查询,要么询问如何在出现此错误时自动重新连接。在我的例子中,它不是一个长时间运行的脚本(它是一个连接池),也不是一个错误:脚本看起来工作得很好,它只是输出这个丑陋的警告。PHP的连接池只包含自那时起超时的连接。
在我以前的服务器上,我很少看到这个警告。事实上,挂页(现在已解决)存在一个问题,它通常会在几分钟后显示此警告或错误(我不记得是哪个)。我从来没弄清楚是什么问题,但似乎是相关的。
我想避免更改每个脚本,因为服务器上运行着数百个小型应用程序(每个都是独立的,并且有自己的数据库凭据)。添加
@
在每个连接前面都有一个副作用,即它抑制了所有错误,而不仅仅是这个特定的错误,并且感觉像是一个解决方法,而不是解决底层问题。
这只是PHP中的一个bug,还是有一个解决它的配置设置?我看到有人建议马里亚行延长暂停时间,但这只是减少了我们看到警告的频率,而不是从根本上解决问题。PHP可以不时地检查它的池,或者只是丢弃池中的旧连接吗?
我还查看了文档页面(
1
,
2
)但是文件和评论都提到了这个问题。