今天在研究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 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服务器与客户端应用之间的连接中断时。这个错误可能由多种原因引起,包括超时、数据包过大或资源耗尽等。下面我们将详细探讨这些原因以及相应的...
在我们使用mysql导入大文件sql时可能会报MySQL server has gone away错误,该问题是max_allowed_packet配置的默认值设置太小,只需要相应调大该项的值之后再次导入便能成功。该项的作用是限制mysql服务端接收到的包...
在 Gearman 中,worker 运行在常驻后台模式,可能会遇到一个问题,即与 MySQL 数据库的连接在处理任务过程中因“MySQL server has gone away”而中断。这通常是由于多种原因造成的,包括 MySQL 服务宕机、超时、请求...
在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误。未找到或无法访问服务器。请验证实例名称是否正确并且 SQL Server 已配置为允许远程连接。 (provider: 命名管道提供程序, error: 40 - 无法打开到 ...
MYSQL server has gone away 引起这个原因是不可怕的.原因是更改了系统的断开时间. mysql>show gloable variables like “%timeout%”; 进行查看 interactive_timeout 的黓认值为28800 wait_timeout 的默认值这:...
若导入时报错,ERROR 2006 (HY000):MySQL server has gone away 。我们可以通过语句查看一下允许的最大包大小:show global variables like 'max_allowed_packet'; MySQL使用最大数据包站站点进行服务器和客户端...
本文将详细讨论两个常见的错误:“MySQL server has gone away”和“Can't connect to [local] MySQL server”。 首先,让我们关注“MySQL server has gone away”错误。这个错误通常意味着服务器在执行查询时超时...
基于tp5的swoole支持,对th5的connection进行改造,使用Swoole\Coroutine\MySQL重写了基于swoole的PDO接口,实现了mysql的数据库连接池,本地测试可用。使用时,替换thinkphp/library/think/db/Connection.php,并...
1. MySQL Server Has Gone Away 错误 这个错误通常表示MySQL服务器由于某种原因关闭了与客户端的连接。默认情况下,服务器会在8小时无活动后自动断开连接。这可以通过设置`wait_timeout`变量在启动mysqld时进行调整...
Qt5.4下连接Mysql,QSqlDatabase: QMYSQL driver not loaded but available-附件资源
- 如果遇到“[ERR]2006-MySQL server has gone away”错误,这通常是由于数据包过大导致的。 - 解决方案: 1. 使用MySQL命令行客户端连接MySQL。 2. 查询当前`max_allowed_packet`的值: ```sql SHOW GLOBAL ...
- **处理大量数据导入时的问题**:如果在导入大量数据时遇到`MySQL server has gone away`错误,可以尝试调整`max_allowed_packet`参数的大小。 - `SHOW GLOBAL VARIABLES LIKE 'max_allowed_packet';`:查看当前...