我试过所有三个方法解释这里 来max_allowed_packet
。但是没有人在我的 MySQL 5.6 中更改它的值。
我show variables like '%max_allowed_packet%'
用来查看它的当前值。但它始终是12582912
。
只有在 my.ini 中更改其值才有效。
怎么了?
小智 19
你max_allowed_packet
在 MySQL 中有两个值:
[mysql]
部分[mysqldump]
,[client]
等等。[mysqld]
部分。max_allowed_packet
您使用该命令看到的值show variables like 'max_allowed_packet';
是服务器端的值。
为了增加这个值,你必须增加双方:在你的服务器配置文件([mysqld]
你的 my.ini 文件中的部分)和你的客户端配置文件(无论是你的[client]
还是[mysql]
my.ini 文件中的部分)。
如果您有SUPER
以下命令的特权,则可以在服务器端更改此设置而无需重新启动服务器:mysql> SET GLOBAL max_allowed_packet = numeric;
。
不要忘记将“ numeric ”值更改为一个数值。不要忘记更改您的配置文件,否则该值将在重新启动时重置。
小智 7
对我有用的是
/etc/my.cnf
以下位置自行创建:# /etc/my.cnf
[mysqld]
Run Code Online (Sandbox Code Playgroud)
max_allowed_packet
编辑框中输入 16M(或您希望的任何大小),单击应用并重新启动 mysqlSHOW VARIABLES LIKE 'max_allowed_packet';
现在将给出 16777216。您可以max_allowed_packet
直接在my.cnf
文件上设置,如下所示:
# /etc/my.cnf
[mysqld]
max_allowed_packet=16M
Run Code Online (Sandbox Code Playgroud)
小智 5
该值表示一个数据包的最大大小,数据包消息缓冲区初始化为 net_buffer_length 字节,但在需要时可以增长到 max_allowed_packet 字节。默认情况下,此值很小,以捕获大(可能不正确)的数据包。如果您使用大 BLOB 列或长字符串,则必须增加此值。它应该与您要使用的最大 BLOB 一样大。
可以通过运行查询来全局设置此服务器变量。
但是,如果您没有在my.ini/my.cnf
文件中更改它,即使您全局设置它,该值也会在服务器重新启动时重置。
在服务器重新启动之前更改所有人的设置:
设置全局 max_allowed_packet=1073741824;
归档时间: |
|
查看次数: |
134011 次 |
最近记录: |