我有一个经常调用的php脚本,它运行一个简短的数据库查询并发送一封电子邮件。数据库代码使用程序样式的mysql函数,例如mysql_query()
等。电子邮件使用mail()
函数发送。
99%的时间没有问题。但是,有时候我会得到一个“MySQL服务器已经消失”的错误。最初的执行顺序是首先使用mail()
发送邮件,然后运行简短的更新查询。我将执行顺序切换为首先运行查询并最后调用mail()
,现在我从来没有遇到过问题。
问题: mail()
偶尔会以某种方式干扰数据库连接。有人有什么想法吗?怎么去寻找问题?
更多信息:
一旦邮件脚本给出“服务器消失”错误,如果我再次尝试运行脚本,查询将始终失败并显示该错误。但是,如果我在phpMyAdmin中运行完全相同的查询,它执行没有问题,然后邮件脚本将再次工作。
此外,该脚本运行了几个月没有任何问题 - 最近刚刚启动的“服务器消失”错误,我们没有更改任何代码或配置。此外,该脚本在长时间内运行时没有问题,其中网站的流量增加了一倍以上,因此在服务器处理更多数据库连接时,它没有任何问题,比现在还要好。
PHP版本:5.3.3
MySQL版本:5.0.77-log源分发
数据库与webserver / php脚本不同(不连接到localhost)
Web服务器和数据库服务器都是Red Hat Enterprise Linux Server 5.6版(Tikanga)
答案 0 :(得分:0)
您的等待时间设置可能太短,
official documentation has covered all the scenario
PS AFAIK,没有mysql server has went away
,
但是mysql server has gone away