间歇性 MySQL 服务器已消失错误

2023-12-13

我一直在绞尽脑汁试图找出导致脚本间歇性错误的原因。错误是: SQLSTATE[HY000]:一般错误:2006 MySQL 服务器已经消失。

下面的脚本是一个函数的一部分,该函数执行curl,从 JSON 响应中获取一些值,然后将它们写入表中。我想说 80% 的情况下它工作正常,然后另外 20% 的情况下我会遇到服务器消失的错误。我无法识别任何导致其出错的趋势,它似乎是随机的。任何想法为什么我可能会收到此错误?感谢您查看此内容

    ...
    //post via cURL 
    $ch = curl_init( $url );
    $timeout = 500;
    curl_setopt( $ch, CURLOPT_POST, 1);
    curl_setopt( $ch, CURLOPT_POSTFIELDS, $myvars);
    curl_setopt( $ch, CURLOPT_FOLLOWLOCATION, 1);
    curl_setopt( $ch, CURLOPT_CONNECTTIMEOUT, $timeout);
    curl_setopt( $ch, CURLOPT_HEADER, 0);
    curl_setopt( $ch, CURLOPT_RETURNTRANSFER, 1);
    $this->response = curl_exec( $ch );
    $this->json_decoded = json_decode($this->response);
    $this->full = print_r($this->json_decoded, true);
    $client_leadid = $this->json_decoded->Parameters->lead_id;
    $client_status = $this->json_decoded->Status;   
    $length = curl_getinfo($ch);
    curl_close($ch);

    //record in DB
    $insert = $this->full.' | '.$url.' | '.$myvars.' | '.$this->date . ' | Time Taken: '.$length['total_time'];
    $db->exec("UPDATE table SET client_resp = '$insert' WHERE global_id = '$this->leadid' LIMIT 1");
    $db->exec("UPDATE table SET client_leadid = '$client_leadid' WHERE global_id = '$this->leadid' LIMIT 1");

发生这种情况可能是因为您的 CURL 请求花费的时间比 mysql 连接超时的时间更长

任何一个 1)为CURL设置一个请求超时,以便它在错误时更快地终止(CURLOPT_CONNECTTIMEOUT仅适用于连接-CURLOPT_TIMEOUT适用于请求的总长度,如果服务器没有及时响应,它将停止) 2) 打开mysql空闲超时以防止服务器因不发送查询而断开连接
3)检测错误并自动重新连接mysql

mysql> show variables like "%timeout%";
+--------------------------+-------+
| Variable_name            | Value |
+--------------------------+-------+
| connect_timeout          | 5     |
| delayed_insert_timeout   | 300   |
| innodb_lock_wait_timeout | 50    |
| interactive_timeout      | 28800 |
| net_read_timeout         | 30    |
| net_write_timeout        | 60    |
| slave_net_timeout        | 3600  |
| table_lock_wait_timeout  | 50    |
| wait_timeout             | 28800 |
+--------------------------+-------+
9 rows in set (0.00 sec)

wait_timeout和interactive_timeout是你关心的两个

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

间歇性 MySQL 服务器已消失错误 的相关文章

  • MaxListenersExceededWarning:检测到可能的 EventEmitter 内存泄漏。添加了 11 条消息列表。使用emitter.setMaxListeners()来增加限制

    我知道这可能会标记为重复的解决方案 但堆栈溢出的解决方案对我不起作用 Problem node 5716 MaxListenersExceededWarning Possible EventEmitter memory leak detec
  • 如何检测Mysql/innodb中的死锁?

    我知道在 Innodb 中使用事务时不可避免地会发生死锁 并且如果应用程序代码正确处理死锁 它们是无害的 正如手册所说 只需再试一次 所以我想知道 如何检测死锁 死锁是否会发出一些特殊的 mysql 错误号 如果重要的话 我正在使用 PHP
  • 删除行导致锁超时

    当我尝试从表中删除行时 我不断收到这些错误 这里的特殊情况是我可能同时运行5个进程 该表本身是一个 Innodb 表 约有 450 万行 我的 WHERE 子句中使用的列没有索引 其他指数按预期运行 这是在事务中完成的 首先删除记录 然后插
  • 将“php”作为 shell 脚本执行时的自定义 php.ini 文件

    我在跑php作为 shell 脚本 我不确定 shell脚本 是否正确 该文件以 usr bin php 这很好用 但 MongoDB 类没有正确加载php ini文件 具有extension mongo so 未使用 我该如何使用它tha
  • Symfony2 Assetic 和 Less Sourcemaps

    我不确定如何破解 assetic less 过滤器以输出源映射文件 我这里指的是LessFilterhttps github com kriswallsmith assetic blob master src Assetic Filter
  • 使用 preg_replace 仅替换第一个匹配项

    我有一个结构类似于以下的字符串 aba aaa cba sbd dga gad aaa cbz 该字符串每次都可能有点不同 因为它来自外部源 我只想替换第一次出现的 aaa 但其他人则不然 是否可以 可选的第四个参数预替换 http php
  • mysql自动存储记录创建时间戳

    mysql 有什么方法可以在创建记录时自动将时间戳存储在记录行中 我试图使用时间戳 数据类型 和 current timestamp 作为默认值 但后来意识到每次更新记录时都会更新 我只需要一些可以存储创建时间戳的东西 Thanks Set
  • 在 PHP 中使用 phpseclib 时出现 RSA 问题

    我正在尝试在 phpseclib 中使用 RSA 实现 我认为在函数中执行一次代码并重新使用该函数会更容易 当我尝试向代码发送短信时 我收到一条错误消息 提示 解密错误 测试还让我意识到每次代码运行时密文都是不同的 所以我显然在那里做错了什
  • 随机组合 MySQL 数据库中的两个单词

    我有一个包含名词和形容词的数据库 例如 id type word 1 noun apple 2 noun ball 3 adj clammy 4 noun keyboard 5 adj bloody ect 我想创建一个查询 它将抓取 10
  • Mysql插入表后不显示右单引号(’)

    我有一个名为 测试 的表 我插入了一行 其中包含unicode字符右单引号 0x2019在名称字段中 SQL insert into Testing values Sno Name Address insert into Testing v
  • 快速将列的副本添加到 MySQL 表

    我需要一种快速的方法来复制表中的 DATETIME 列并为其指定一个新名称 我的表中有一个名为 myDate 的列 名为 myResults 我需要一个查询来在名为 newDate 的表中创建一个新列 该列的数据与 myDate 列完全相同
  • 在 apache docker 容器中运行虚拟主机

    我在同一个 apache 容器中有两个 php 应用程序 我试图在端口上运行其中一个应用程序 因为它需要通过根域而不是子文件夹进行访问 我想在端口 8060 上运行应用程序 我尝试使用 apache 虚拟主机执行此操作 但它不会加载页面 h
  • 如果循环中内存超出,我可以在 for 循环中抛出异常吗?

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 如何处理 foreach 循环中发生
  • php,统计字符并删除超过140个字符的内容

    我需要一个 PHP 函数来计算短语的字符数 如果短语长度超过 140 个字符 则此函数应删除所有其他字符并在短语末尾添加三个点 例如我们有 message I am what I am and you are what you are et
  • 如何在 Laravel 中使用 PUT http 动词提交表单

    我知道这个问题可能已经提出 但我就是无法让它发挥作用 如果有人可以帮助我 我将非常感激 我安装了 colletive form 但答案也可以是 html 表单标签 现在列出我的表格 我的路线和我的例外情况 Form model array
  • 简单的 PHP 表单:电子邮件附件(代码 Golf)

    想象一下 一个用户想要在其网站上放置一个表单 该表单将允许网站访问者上传一个文件和一条简单的消息 该消息将立即通过电子邮件发送 即 该文件未存储在服务器上 或者如果该文件存储在服务器上 仅暂时 作为文件附件 并在邮件正文中添加注释 查看更多
  • post php mysql 的拆分关键字

    我有一个表存储帖子 ID 它的标签如下 Post id Tags 1 keyword1 keyword2 keyword3 我想循环遍历该表中的每一行并执行以下操作 将关键字1 关键字2 关键字3放入新表中 word id word val
  • 对具有混合类型值的数组进行数字排序

    我有一个像这样的混合数组 fruits array lemon Lemon 20 banana apple 121 40 50 然后申请sort 其功能如下 sort fruits SORT NUMERIC foreach fruits a
  • 无法显示 Laravel 欢迎页面

    我的服务器位于 DigitalOcean 云上 我正在使用 Ubuntu 和 Apache Web 服务器 我的家用计算机运行的是 Windows 7 我使用 putty 作为终端 遵循所有指示https laracasts com ser
  • 为什么curl允许使用文件URL方案,但wget不允许

    这个问题指的是curl 7 21 4和GNU Wget 1 13 4 我不知道答案是否特定于版本 使用文件 URI 方案 http en wikipedia org wiki File URI scheme我可以使用获取本地文件curl a

随机推荐

  • 尝试确定屏幕是否关闭时检测常亮显示

    我正在尝试找出如何检测 Android 上的显示屏是否关闭 并且我感觉 S10 上的常亮显示屏正在影响我的结果 目前 我正在使用中找到的逻辑这个 stackoverflow 答案 还有对该线程的评论这说明你应该能够使用Display FLA
  • 使用paintComponent()在JFrame中绘制矩形

    我正在尝试创建一个使用 JPanel 的 PaintComponent 绘制形状 下面示例中的矩形 的程序 但我无法让它工作 也无法发现问题所在 代码如下 import javax swing import java awt public
  • 获取子数组键php

    我有一个数组 Array 47 gt Array name gt 3543 good price gt 100 0000 image gt data hp 1 jpg discount gt stock status gt weight c
  • 如何检测设备支持哪些语言字体?

    比如说 我想以本机脚本显示 10 种语言的列表 如果手机不支持该字体 它将回退到英语脚本 有什么方法可以检测特定设备支持哪些字体 换句话说 我只是想检查 punjabi 是否可以显示为 为了安全起见 我会同时使用英文名和本地名 这就是我实际
  • WordPress 自定义帖子类别过滤器

    我试图在我的作品集模板页面中仅显示名为作品集的自定义帖子的某些类别 我可以按 slug 仅显示 1 个类别 但我需要显示 1 个以上类别 并且我想知道是否有办法按 ID 过滤类别 CODE global wp query portfolio
  • 在 SelectField 和 HiddenField 之间动态更改 WTForms 字段类型

    我有一个 WTForms 字段 value currency 我希望它有时是 SelectField 有时是 HiddenField 我对页面使用相同的视图和模板 既创建新项目又编辑现有项目 如果我加载页面来创建新项目 我希望此字段成为 S
  • 如何用Jackson解析一个可能是字符串也可能是数组的json字段

    我有一个 json 字段 当有一个值时它是字符串 theField oneValue 当有多个值时或数组 theField firstValue secondValue 然后我有一个使用 com fasterxml jackson anno
  • 在 64 位 Windows 上设置汇编器 [关闭]

    Closed 这个问题需要多问focused 目前不接受答案 我真的需要一些帮助 我已经在网上搜索了大约两天 似乎无法找到我遇到的问题的答案 我下载了 nasm 并安装了它 它似乎可以工作 但我似乎找不到任何适用于 Windows 64 位
  • 将非常大的 csv 文件与公共列合并

    例如 我有两个 csv 文件 0 csv 100a a b c c 200a b c c c 300a c d c c 和 1 csv 100a Emma Thomas 200a Alex Jason 400a Sanjay Gupta 5
  • ajax xhr lengthComputable 使用 php 文件返回 false

    我正在使用 XMLHttpRequest 执行 ajax 请求 以显示请求的进度 它对于 html 文件工作得很好 但是 evt lengthComputable 对于 php 文件返回 false 我的 php 文件以 utf 8 编码
  • ML-Engine 预测出现错误,但本地预测工作正常

    我在这里搜索了很多 但不幸的是找不到答案 我在跑步TensorFlow 1 3 在 MacOS 上通过 PiP 安装 在我的本地计算机上 并使用provided ssd mobilenet v1 coco 检查站 我设法在本地和 ML En
  • WhatsApp Business API 未向手机发送 /message 端点或测试消息

    我已经设置了 WhatsApp Business 来测试他们用于发送消息的新 WhatsApp API 我已按照入门指南进行操作 但在尝试发送邮件时遇到了问题测试消息到我的手机 我测试了使用业务设置中的测试消息调用发送消息 如指南中所示 并
  • 一个变量有两种类型

    我需要从 TypeScript 读取一个 JSON 对象 它有一个变量名称prop两种类型中的哪一种Identifier or Expression到 C TypeScript 可以有一个具有多种类型的变量 具有联合类型功能 例如 prop
  • 如何忽略第一个小数点后的第一个值(如果它是 0),否则如果大于 0,则取它?

    我的值如下 decimal val 1 100 现在我想做的是 如果我在第一个小数点值后有 0 那么我只想取 1 1 并忽略其余部分 如果我有 1 11 那么我想取整个 1 11 这就是我的想法 将十进制转换为字符串 按点分割字符串 检查长
  • TOMCAT 6 SSL 错误:别名无法识别密钥条目

    我正在尝试在收到 CA 后配置密钥库 我收到了一份中级 CA 和一份 CA 我已使用此命令导入它们 keytool delete alias tomcat keystore B1i keystore keytool import alias
  • 接口与抽象类[重复]

    这个问题在这里已经有答案了 在C 中 什么时候应该使用接口 什么时候应该使用抽象类 什么可能是决定因素 更新 C 8 0 新功能 从 C 8 0 开始 接口可以定义成员的默认实现 包括属性 在接口中定义属性的默认实现很少见 因为接口可能不定
  • Div 的高度不及其浮动子元素的总高度

    好吧 我在理解 float 属性的行为方面确实遇到了问题 该页面宽 750 像素 为了将其保持在屏幕中央 我使用了以下代码 div align center div align left style width 100 stuff div
  • 为 JPanel 提供基于百分比的宽度

    制作一个最简单的方法是什么JPanel占据其父容器的固定百分比 按宽度 当其父容器的宽度发生变化时 其宽度应该更新 我尝试使用Box createHorizontalStrut 但是当宽度改变时 它不会更新JPanel的父容器发生变化 你想
  • 如何解决“CastError:对于模型“任务”的路径“_id”处的值“未定义”(类型字符串),转换为 ObjectId 失败”? [复制]

    这个问题在这里已经有答案了 我对 Node JS 还是个新手 我正在尝试使用 Node JS 和 Mongo DB 制作一个图书目录 每次我按删除按钮删除一本书时 都会显示此错误 CastError Cast to ObjectId fai
  • 间歇性 MySQL 服务器已消失错误

    我一直在绞尽脑汁试图找出导致脚本间歇性错误的原因 错误是 SQLSTATE HY000 一般错误 2006 MySQL 服务器已经消失 下面的脚本是一个函数的一部分 该函数执行curl 从 JSON 响应中获取一些值 然后将它们写入表中 我