max_allowed_packet 在mysql配置中设置,而不是在php端设置
[mysqld] max_allowed_packet=16M 您可以在mysql中看到它的当前值,如下所示:
SHOW VARIABLES LIKE 'max_allowed_packet'; 您可以尝试像这样更改它,但是这不太可能在共享主机上起作用:
SET GLOBAL max_allowed_packet=16777216; 您可以在这里阅读有关它的信息http://dev.mysql.com/doc/refman/5.1/en/packet-too-large.html
编辑
max_allowed_packet至少从mysql 5.5版开始,[mysqld]是运行该程序所必需的。
最近,使用Drupal和Solr搜索引擎在AWS EC2上设置了一个实例,该实例需要32M max_allowed_packet。您[mysqld_safe]在/etc/my.cnf中的(默认设置是mysql安装随附的)模式下设置值,则没有任何效果。我没有研究这个问题。但是在我将其更改为[mysqld]并重新启动mysqld之后,它开始工作了。来源:stack overflow