Possible Duplicate:
MySQL Error 1153 - Got a packet bigger than ‘max_allowed_packet’ bytes
您好,我收到错误消息:
[1153] 得到一个大于 'max_allowed_packet'bytes 的数据包
但我没有对我的源代码进行任何更改,并且托管方声明他们没有对服务器设置进行任何更改。
我不知道发生了什么。但我正在努力寻找原因。
那么,如何通过 php 脚本检查 max_allowed_packet
mysql 变量?
可以在源代码中设置吗?
最佳答案
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
编辑
[mysqld] 是使 max_allowed_packet
至少从 mysql 版本 5.5 开始工作所必需的。
最近在 AWS EC2 上使用 Drupal 和 Solr 搜索引擎设置了一个实例,需要 32M max_allowed_packet
。如果您在/etc/my.cnf 中的 [mysqld_safe]
(这是 mysql 安装附带的默认设置)模式下设置值,它不起作用。我没有深入研究这个问题。但是在我把它改成 [mysqld]
并重新启动mysqld之后,它就起作用了。
关于php - 如何检查和设置 max_allowed_packet mysql 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5688403/