mySQL 中的 max_allowed_pa​​cket

PHP*_*Pst 10 mysql

我试过所有三个方法解释这里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

对我有用的是

  1. 启动 MySQL Workbench 5.6(测试到版本 6.3)
  2. 在导航器中转到实例选项文件。如果找不到该文件,请在/etc/my.cnf以下位置自行创建:
# /etc/my.cnf
[mysqld]
Run Code Online (Sandbox Code Playgroud)
  1. 单击网络选项卡
  2. max_allowed_packet编辑框中输入 16M(或您希望的任何大小),单击应用并重新启动 mysql
  3. SHOW 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_pa​​cket 字节。默认情况下,此值很小,以捕获大(可能不正确)的数据包。如果您使用大 BLOB 列或长字符串,则必须增加此值。它应该与您要使用的最大 BLOB 一样大。

可以通过运行查询来全局设置此服务器变量。

但是,如果您没有在my.ini/my.cnf文件中更改它,即使您全局设置它,该值也会在服务器重新启动时重置。

在服务器重新启动之前更改所有人的设置:

设置全局 max_allowed_pa​​cket=1073741824;