我有一个脚本试图记录一些数据(通常一次大约 200-300kb)。它已经运行了很长一段时间了。我不知道对处理服务器上的 MySQL 服务器或 PHP 进行了任何配置更改。昨天,以下代码块开始出现异常。两天前,“$sqlBucket”查询运行良好。现在,它失败了并且 mysql_error 返回“MySQL 服务器已经消失”。我在第一个 if block 中添加了调试,它输出:
The Link Is Down
Link still down
代码:
if (!mysql_ping($conn)) {
echo "The Link Is Down!\n";
mysql_close($conn);
if (!($conn = mysql_connect($hostname,$username,$password))) echo "Fail " . $mysql_error() . "\n";
mysql_select_db($db,$conn);
if (!mysql_ping($conn)) echo "Link still down\n";
}
if (!mysql_query($sqlBucket, $conn)) {
echo "Could not execute: {$sqlBucket}" . mysql_error() . "\n";
}
如果有人对检查、调试、重新配置等有任何想法,我已经没有想法了。 谢谢。
编辑:额外信息
脚本在大约 3 秒内执行并失败。
MySQL服务器上的wait_timeout值为28800。
我能够通过命令行成功发送查询。
我在 mysql_connect 函数上添加了一个检查,它报告成功(至少我没有在输出中得到“失败”)。
最佳答案
查看表结构和索引——随着表的增长,写入数据可能需要更长的时间。 200-300 kB 听起来是相当多的数据,而且会很快累积(每 3-4 次更新 1 MB)。
此外,启用您的 MySQL slow query log以准确查看缓慢进入系统的位置。
关于php - MySQL 服务器在 PHP 脚本中保留 "going away",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14493755/