一尘不染

如何检查和设置max_allowed_pa​​cket mysql变量

mysql

嗨,我收到错误消息:

[1153] Got a packet bigger than 'max_allowed_packet'bytes

但是我没有对我的源代码进行任何更改,托管表明它们在服务器设置方面没有进行任何更改。

我不知道发生了什么 但是我试图找到原因。

那么,如何max_allowed_packet通过php脚本检查mysql变量?

并且可以在源代码中进行设置吗?


阅读 252

收藏
2020-05-17

共1个答案

一尘不染

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之后,它开始工作了。

2020-05-17