如何解决一般错误:2006 MySQL 服务器已消失

2024-03-18

我正在执行一项操作,将数百条记录插入 MySQL 数据库。

插入 176 条记录后,我收到此错误:

[PDOException] SQLSTATE[HY000]:一般错误:2006 MySQL 服务器已消失

我有什么办法可以解决这个问题吗?

该过程是使用 PHP 进行的。


我敢说问题出在wait_timeout。在我的共享主机上它设置为 30 秒,在我的本地主机上设置为 28800。

我发现我可以为会话更改它,因此您可以发出查询:SET session wait_timeout=28800

UPDATEOP 确定他还需要更改变量interactive_timeout以及。每个人可能都需要也可能不需要。

下面的代码显示了更改之前和之后的设置,以验证其是否已更改。

因此,在查询开始时设置 wait_timeout=28800 (和 Interactive_timeout = 28800)并查看它是否完成。

请记住插入您自己的数据库凭据来代替DB_SERVER, DB_USER, DB_PASS, DB_NAME

UPDATE另外,如果这确实有效,您希望通过将 wait_timeout 设置得更高来清楚自己在做什么。将其设置为 28800 就是 8 小时,而且很多。

以下内容来自这个网站 http://club.orbisius.com/howto/web-development/change-mysqls-wait_timeout-interactive_timeout-variables/。它建议将 wait_timeout 设置为 300 - 我将尝试并报告我的结果(几周后)。

wait_timeout变量表示MySQL将等待的时间量 在终止空闲连接之前等待。默认的wait_timeout 变量为 28800 秒,即 8 小时。好多啊。

我在不同的论坛/博客中读到将 wait_timeout 设置得太低 (例如 30、60、90)可能会导致 MySQL 出现错误消息。所以 您必须决定您的配置。

<?php

$db = new db();

$results = $db->query("SHOW VARIABLES LIKE '%timeout%'", TRUE);
echo "<pre>";
var_dump($results);
echo "</pre>";

$results = $db->query("SET session wait_timeout=28800", FALSE);
// UPDATE - this is also needed
$results = $db->query("SET session interactive_timeout=28800", FALSE);

$results = $db->query("SHOW VARIABLES LIKE '%timeout%'", TRUE);
echo "<pre>";
var_dump($results);
echo "</pre>";


class db {

    public $mysqli;

    public function __construct() {
        $this->mysqli = new mysqli(DB_SERVER, DB_USER, DB_PASS, DB_NAME);
        if (mysqli_connect_errno()) {
            exit();
        }
    }

    public function __destruct() {
        $this->disconnect();
        unset($this->mysqli);
    }

    public function disconnect() {
        $this->mysqli->close();
    }

    function query($q, $resultset) {

        /* create a prepared statement */
        if (!($stmt = $this->mysqli->prepare($q))) {
            echo("Sql Error: " . $q . ' Sql error #: ' . $this->mysqli->errno . ' - ' . $this->mysqli->error);
            return false;
        }

        /* execute query */
        $stmt->execute();

        if ($stmt->errno) {
            echo("Sql Error: " . $q . ' Sql error #: ' . $stmt->errno . ' - ' . $stmt->error);
            return false;
        }
        if ($resultset) {
            $result = $stmt->get_result();
            for ($set = array(); $row = $result->fetch_assoc();) {
            $set[] = $row;
            }
            $stmt->close();
            return $set;
        }
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何解决一般错误:2006 MySQL 服务器已消失 的相关文章

  • PHP 矩阵的逆矩阵

    I saw 这个问题 https stackoverflow com questions 211160 python inverse of a matrix 并弹出这个想法 PHP 有没有一种有效的方法来做到这一点 EDIT 最好有演示 你
  • 如何应对本地化?我应该遵循一个标准吗?

    我正在尝试创建一组类来处理本地化 主要是货币部分 但也包括语言 我可以想象其中的逻辑 但我不知道不同的语言和货币使用什么名称 我看到有很多 ISO 标准 我应该选择哪一个 不管怎样 这是我想到的逻辑 以防你也能帮忙解决这个问题 我会有一个
  • YOUTUBE API:检索视频关键字

    最近 YouTube 决定仅向经过身份验证的开发者输出视频关键字 我注册了开发者密钥 我试图获取一个我将解析的 XML 通过请求 https gdata youtube com feeds api videos COwIYbYQUrQ ke
  • curopt_binarytranfer 到底是什么意思?

    我不明白有什么区别 CURLOPT RETURNTRANSFER AND CURLOPT BINARYTRANSFER 我写了一个脚本来检查它
  • 如何将值从 javascript 传递到 php 文件

    我通过以下方式获取价值JQuery像这样的东西 var query popURL split var dim query 1 split var popWidth dim 0 split 1 Gets the first query str
  • 如何在 Mac 上更改 PHP-FPM 端口

    我没有使用 php 或 php fpm 但它占用了端口 9000 我需要端口 9000 我想更改端口 我把它改成了 etc php fpm conf and etc php fpm d www conf 听 127 0 0 1 9005 仍
  • 将多个参数绑定到mysqli查询中

    现在我需要使用以下结构来处理将多个参数绑定到 mysqli 查询中 if words total 1 statement gt bind param s words 0 else if words total 2 statement gt
  • 如何在mysql工作台中打开多个模型/数据库

    我有两个型号 1 Server Model conneted to remote database which is stored on server 2 Local Host connected to my pc database is
  • 服务器重新启动时显示等待页面

    我有一个服务器并为其创建一个 Web 界面 如果用户按下页面上的重新启动按钮 则用户将被重定向到reboot php他应该看到一个旋转 gif 直到服务器再次可访问并且服务器通过 shell 执行重新启动 如果服务器可以访问 那么我需要重定
  • 音频端播放新文件

    我有一个webapp https radio repjesus com当您使用 ajax jquery 单击链接时加载并播放音轨 一切正常 但当曲目结束时 曲目将设置为循环 并且这种情况可以永远持续下去 我希望播放器从数据库中自动加载随机曲
  • php oop 如何使用属性和方法形成类

    我是 php oop 的新手 我对类有一些想法 但我仍然不知道如何在创建的对象中使用它的属性和方法 我需要了解下面报告的代码是否正确 如果不正确我做错了什么 我假设我有一个可以为我做任何事情的课程 我们称之为 Class myClass 现
  • 这段php代码安全吗?

    我知道我应该使用准备好的语句 但我的下一个项目将使用准备好的语句 我只需要完成这个简单的小应用程序 所以我的问题是 以下代码片段安全吗 我使用了 htmlentities 以及 mysql real escape string 因为我认为这
  • 获取发送 cURL 请求的用户的 IP 地址

    我想获取使用 php 中的 cURL POST 方法向我的服务器发送请求的用户的 IP 地址 我正在开发一个 Flight API 我将使用 cURL POST 方法获取请求 我必须获取客户端的 IP 地址并验证他的 IP 地址是否可用 如
  • 社交登录重复帐户冲突

    我正在制作一个新应用程序 除了常规电子邮件 密码注册之外 还需要多个社交注册 但是有一种特殊情况可能会导致数据完整性问题 例子 用户在 Facebook 上注册 但没有收到任何电子邮件回复 我在数据库中创建一个用户 将电子邮件和密码设置为
  • PHP md5() 给出与 MySQL md5 不同的输出

    我正在尝试设置登录系统 但无法解决一个问题 PHP 通过 md5 给了我另一个输出 比MySQL 例如 在 PHP 中 password md5 brickmasterj return password 返回 3aa7b18f304e2e2
  • Laravel项目部署到Cpanel时出现404错误如何解决?

    我正在尝试将我的 laravel Laravel Framework 7 28 3 部署到 Cpanel 但出现 404 错误 我将项目上传到 public html 修改了 index php 文件以指向正确的文件 如下所示 我认为ind
  • 转储中的 MySQL 标志

    在查看 mySQL 转储时 我发现了一些东西并且想知道它们是什么 I see 50001 DROP TABLE IF EXISTS xxx 标志 50001 是什么 有它们含义的列表吗 它在 MySQL 的论坛 邮件列表上进行了讨论here
  • php中有指针吗?

    这段代码是什么意思 这就是你在 php 中声明指针的方式吗 this gt entryId entryId PHP 中的变量名称以 开头 因此 entryId 是变量的名称 this是PHP面向对象编程中的一个特殊变量 它是对当前对象的引用
  • 使用 php 将 HTML 输出转换为纯文本

    我正在尝试将示例 HTML 输出转换为纯文本 但我不知道如何操作 我使用 file get contents 但我尝试转换的页面返回的结果最相似 raw http localhost guestbook profiles php file
  • Codeigniter 中的 HTML 格式的电子邮件

    如何在 codeigniter 中发送格式化的电子邮件 我有这段代码 可以很好地发送电子邮件 但它没有按应有的方式格式化它 您可以看到显示收到电子邮件的图片 function email sender this gt load gt hel

随机推荐

  • Three.js:可以翻转精灵吗?

    Question 是否可以翻转 镜像 Three js 精灵纹理 背景 使用 Three js 当前的 DEV 分支 迄今为止的调查结果 我首先尝试更改它的 3d 旋转 但没有任何效果 然后我检查了 sprites 代码 发现 Sprite
  • 从 Commons HttpClient 迁移到 HttpComponents 客户端

    我想从 Commons HttpClient 3 x 迁移到 HttpComponents Client 4 x 但在如何处理重定向方面遇到困难 该代码在 Commons HttpClient 下可以正常工作 但在迁移到 HttpCompo
  • 获取对象的所有属性[重复]

    这个问题在这里已经有答案了 我有这样的对象 some object 这个对象有大约 1000 个属性 我想像这样循环遍历每个属性 foreach property in some object output the property 是否有
  • 如何在 MySQL 中使用 SELECT 删除填充的 NULL 字节

    如果以这种方式插入数据 insert into t date data values now lpad Hello 4096 CHAR 0x00 如何检索它并从中删除 NULL 字符data柱子 事实上 我正在寻找与什么相反的东西LPAD
  • 用于加载 Ionic / Cordova 应用程序外部的外部链接

    我正在开发一个 Ionic Cordova 应用程序 在其中加载有时包含外部链接的提要和新闻 我需要在应用程序外部加载这些外部链接 而不是在 InAppBrowser 中 而是在手机浏览器中 是否可以将此作为所有链接的默认行为 为了使用相应
  • 无法在 eclipse 中创建 Maven 项目

    我在企业防火墙后面的 Windows 7 计算机上安装了 Eclipse Luna 和 Maven 3 2 3 尝试从原型创建项目会导致以下错误 无法从任何配置的存储库解析原型 org apache maven archetypes mav
  • Lucene 中的关键字(OR、AND)搜索

    我在我的门户 基于 J2EE 中使用 Lucene 来提供索引和搜索服务 问题出在Lucene的关键字上 当您在搜索查询中使用其中之一时 您会收到错误消息 例如 searchTerms ik OR jij 这工作正常 因为它会搜索 ik o
  • 从 JSON 中插入 HTML 选择标签选项

    所以 事情是这样的 我有一个 JSON 对象保存在我的 web 应用程序的 localStorage 中 此 JSON 被保存为字符串 其中JSON stringify 在我的函数之一内 在页面加载上 localStorage setIte
  • socket.io的emit函数中允许使用数组吗?

    是否可以发送对象数组socket io发出函数 例如 io emit message data 123 data 456 Yes it is 您可以发送几乎任何类型 并且可以将任何类型嵌套在另一种类型中 Strings Numbers 12
  • 为什么匿名类型实例不能接受实体框架查询返回的空值?

    当我尝试运行以下实体框架查询时 var l from s in db Samples let action db Actions Where x gt s SampleID x SampleID x ActionTypeID 1 First
  • 如何存储/计算单个簇大小并在 NetLogo 中绘制它们

    我有一个生成黄色斑块簇的模型 我有兴趣查看簇大小的频率分布 为此 我从 NetLogo 代码库中的 补丁集群示例 中选择了代码 它似乎在查找簇方面起作用 参见下面的照片 尽管我希望它不计算簇中的绿色斑块 但我不知道如何获取大小 或斑块计数
  • 关于 printf 语句的混淆

    所以我正在运行这段代码 include
  • Android:使用 Gradle 构建,使用 Maven 签名

    我的 Android 构建在持续集成中运行良好 但 androidSigning 除外 Gradle 可以允许开发人员清晰地捕获密钥库路径和密码 这并不令人满意 1 你有解决方法吗 比如密码加密 2 我现在的想法是使用 Gradle 进行构
  • 自动递增第二列[重复]

    这个问题在这里已经有答案了 我有一个有 2 列的表 ID 列自动递增 我正在尝试自动增加与 ID 相同的用户列id列 但带有 user 前缀 例如 user100 其中 ID 也是 100 基本上就像 stackoverflow 上所做的那
  • 具有拉伸对齐功能的 Flexbox 容器中垂直居中的 div

    我需要将一个 div 放在 Flex 容器中 并保持该 div 的整个容器的高度 显然 我有align items stretch用于保持高度或align items center用于定心块 Flexbox 模型将 div 居中并保持父容器
  • 在 React 中切换类

    我正在将 React 用于一个有菜单按钮的项目 a href i i a 还有一个 Sidenav 组件 例如
  • 2 个纬度/经度点(坐标)列表之间的地理/地理空间距离

    我有 2 个列表 list1 list2 以及各个地点的纬度 经度 一份清单 list2 的地点名称list1不具有 我也想要 list1 中每个点的近似位置 所以我想指出一点list1 尝试寻找最近的点list2并采取该地点 我对其中的每
  • 将 .class 转换为 .java

    我有一些 class 文件需要转换为 java 所以我这样做了 javap c ClassName class 我一直有同样的错误 ERROR Could not find ClassName class 你们知道可能是什么原因吗 我做了
  • GPUImage iOS 中未显示文本叠加

    我正在尝试在视频上叠加一些文本 但到目前为止还没有取得任何成功 videoCamera GPUImageStillCamera alloc initWithSessionPreset AVCaptureSessionPreset640x48
  • 如何解决一般错误:2006 MySQL 服务器已消失

    我正在执行一项操作 将数百条记录插入 MySQL 数据库 插入 176 条记录后 我收到此错误 PDOException SQLSTATE HY000 一般错误 2006 MySQL 服务器已消失 我有什么办法可以解决这个问题吗 该过程是使