php - MySQL 服务器在 PHP 脚本中保留 "going away"

标签 php mysql linux

我有一个脚本试图记录一些数据(通常一次大约 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/

相关文章:

php - 一切都很顺利,除非它给了我一个真实的结果并且没有任何改变

php - 未知 : Failed opening required '0ff' (include_path ='.:/tmp:/usr/lib/php:/usr/local/lib/php' ) in Unknown on line 0

php - 如何在 PHP 中请求用户 ID 或删除行

java - hadoop程序编译时连接log4j报错

linux - 进程超过 RedHat Enterprise Linux 6 上的线程堆栈大小限制?

PHP - 为什么拼接的 print_r 打印顺序不正确?

mysql - WAMP 是否删除过时的数据库/表?

php - 对行进行排序,然后从该集合中获取特定的 10 行

linux - 从 shell 脚本运行 awk 文件而不指定 awk 的确切位置

php - 使用 php 发送 json 帖子