yii mysql服务器已经在插入查询上消失了

时间:2015-02-09 06:30:54

标签: php mysql sql yii

我在运行5分钟后尝试了一个cron作业,它给了我以下错误。

这里我正在附加屏幕截图。我正在使用yii框架。

I am trying one cron job after running of 5 minutes it is giving me below error.

  CDbCommand failed to execute the SQL statement: SQLSTATE[HY000]: 
  General error: 2006 MySQL server has gone away. 
  The SQL statement executed was: INSERT INTO `phpcrawler_links` 
  (`site_id`, `depth`, `crawl_now`, `url`, `last_crawled`, 
  `http_status_code`, `content_type`, `page_size`, `parent_url_id`) 
  VALUES (:yp0, :yp1, :yp2, :yp3, :yp4, :yp5, :yp6, :yp7, :yp8)

2 个答案:

答案 0 :(得分:1)

它经常发生在大循环中的几个插入,并且其中一个INSERT失败。通常情况下,MySQL服务器会在一段时间后恢复,而不必执行任何操作。

但请务必在my.ini中将max_packet_size调整为一大笔量并重新启动服务器:

[mysqld]
max_allowed_packet = 16M

通过以下方式验证:

SHOW VARIABLES LIKE '%packet%';

答案 1 :(得分:1)

如果您使用的列文本可能需要序列化数据和许多行,您必须考虑增加这些参数:

max_allowed_packet=512M

如果您有很多请求设置此项,请不要将其设置为更大,因为它与您的环境相关

max_connections=1000

注意如果您处于最后一种情况并且如果您正在使用持久连接,请查看是否禁用它,在许多与数据库具有密切交互的应用程序中,如果您创建了许多连接持久性,则使用该数字这么快。