数据库
首页 > 数据库> > mysql – 如何追踪Drupal max_allowed_pa​​cket错误?

mysql – 如何追踪Drupal max_allowed_pa​​cket错误?

作者:互联网

我的一个临时站点最近开始在每个管理页面上喷出大量错误:

用户警告:获得的数据包大于’max_allowed_pa​​cket’字节查询:UPDATE cache_update SET data =’…’,created = 1298434692,expire = 1298438292,serialized = 1 WHERE cid =’update_project_data’in _db_query()(第141行) /var/www/vhosts/mysite/mypath/includes/database.mysqli.inc). (其中“……”大约有150万个字符的序列化数据)

我该如何追踪错误发生的位置?将调试代码添加到_db_query会有什么好处,因为它被调用了这么多?

解决方法:

不需要追踪它,因为你无法修复它我认为.

这是来自update.module的缓存,包含有关哪些模块具有更新版本的信息等.所以这来自该模块中的一个“_update_cache_set()”调用.

根据一个疯狂的猜测,我会说它是这个函数中的一个:http://api.drupal.org/api/drupal/modules–update–update.fetch.inc/function/_update_refresh/6

它基本上构建了一个巨大的数组,其中包含有关您站点上所有项目的信息,并尝试将其存储为单个序列化值.

您在此站点上安装了多少个模块?

我可以想到三种方法来“修复”这个错误:

>增加max_allowed_pa​​cket大小. (my.conf中的max_allowed_pa​​cket设置)
>禁用update.module(无论如何,当您需要首先在开发站点上进行更新时,它在暂存/生产站点上没有用)
>禁用一些模块;)

标签:mysql,caching,debugging,drupal,drupal-6
来源: https://codeday.me/bug/20190531/1188416.html