`
yeyuan
  • 浏览: 230850 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

MySQL server has gone away

阅读更多
今天在研究phpcms源码的时候,在调试后台的时候,突然出现:

MySQL server has gone away  这个错误,错误号是:2006

于是到官方论坛里看了下,造成这个情况有两种原因

第一就是比如采集的时候,网速比较慢,与数据库连接时间比较长,或者是数据量比较大,执行sql的时间超过了系统默认的时间,就会报这个错误,
这个解决办法
在数据库类的初始化函数中加如下两条语句:

$db->query("set wait_timeout=1073741824"); 
$db->query("set interactive_timeout=1073741824"); 


这两条语句是修改系统默认的sql执行时间

第二个原因就是sql语句太长了。系统默认的sql语句的大小是1MB  如果超过这个这个大小,就会出现这个错误。我遇到的这个情况,就属于这个原因,因为在测试的时候,连主分类 带子分类,一共是3000多年分类,将近4000个分类,这时候,做update操作的时候,sql语句会很长,导致这个错误

这时候,只需要在my.ini中把max_allowed_packet 这个值改下,默认是1M 最大值是32MB 改成稍大一些就可以了

特此标记下
分享到:
评论

相关推荐

    MySQL导入sql脚本错误:2006 解决方法

    MySQL导入sql脚本错误:2006 – MySQL server has gone away 到如一些小脚本很少报错,但最近导入一个10+M的SQL脚本,却重复报错: Error occured at:2014-03-24 11:42:24 Line no.:85 Error Code: 2006 - MySQL ...

    MySQL server has gone away错误提示解决方法

    MySQL Server has gone away 是一个常见的错误提示,通常出现在MySQL服务器与客户端应用之间的连接中断时。这个错误可能由多种原因引起,包括超时、数据包过大或资源耗尽等。下面我们将详细探讨这些原因以及相应的...

    解决MySQL server has gone away错误的方案

    在我们使用mysql导入大文件sql时可能会报MySQL server has gone away错误,该问题是max_allowed_packet配置的默认值设置太小,只需要相应调大该项的值之后再次导入便能成功。该项的作用是限制mysql服务端接收到的包...

    gearman中worker常驻后台,导致MySQL server has gone away的解决方法

    在 Gearman 中,worker 运行在常驻后台模式,可能会遇到一个问题,即与 MySQL 数据库的连接在处理任务过程中因“MySQL server has gone away”而中断。这通常是由于多种原因造成的,包括 MySQL 服务宕机、超时、请求...

    sql错误解决错误号:40error: 40

    在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误。未找到或无法访问服务器。请验证实例名称是否正确并且 SQL Server 已配置为允许远程连接。 (provider: 命名管道提供程序, error: 40 - 无法打开到 ...

    mysql提示got timeout reading communication packets的解决方法

    MYSQL server has gone away 引起这个原因是不可怕的.原因是更改了系统的断开时间. mysql>show gloable variables like “%timeout%”; 进行查看 interactive_timeout 的黓认值为28800 wait_timeout 的默认值这:...

    全国手机号码段归属地数据库(记录条数共415284条记录)

    若导入时报错,ERROR 2006 (HY000):MySQL server has gone away 。我们可以通过语句查看一下允许的最大包大小:show global variables like 'max_allowed_packet'; MySQL使用最大数据包站站点进行服务器和客户端...

    使用MySQL时的一些常见错误.docx

    本文将详细讨论两个常见的错误:“MySQL server has gone away”和“Can't connect to [local] MySQL server”。 首先,让我们关注“MySQL server has gone away”错误。这个错误通常意味着服务器在执行查询时超时...

    thinkphp5-swoole 数据库连接池实现

    基于tp5的swoole支持,对th5的connection进行改造,使用Swoole\Coroutine\MySQL重写了基于swoole的PDO接口,实现了mysql的数据库连接池,本地测试可用。使用时,替换thinkphp/library/think/db/Connection.php,并...

    使用MySQL时的一些常见错误.pdf

    1. MySQL Server Has Gone Away 错误 这个错误通常表示MySQL服务器由于某种原因关闭了与客户端的连接。默认情况下,服务器会在8小时无活动后自动断开连接。这可以通过设置`wait_timeout`变量在启动mysqld时进行调整...

    Qt5.4下连接Mysql,QSqlDatabase: QMYSQL driver not loaded but available-附件资源

    Qt5.4下连接Mysql,QSqlDatabase: QMYSQL driver not loaded but available-附件资源

    oracle迁移mysql说明

    - 如果遇到“[ERR]2006-MySQL server has gone away”错误,这通常是由于数据包过大导致的。 - 解决方案: 1. 使用MySQL命令行客户端连接MySQL。 2. 查询当前`max_allowed_packet`的值: ```sql SHOW GLOBAL ...

    MySQL安装过程

    - **处理大量数据导入时的问题**:如果在导入大量数据时遇到`MySQL server has gone away`错误,可以尝试调整`max_allowed_packet`参数的大小。 - `SHOW GLOBAL VARIABLES LIKE 'max_allowed_packet';`:查看当前...

Global site tag (gtag.js) - Google Analytics