10bet网址
MySQL 8.0参考手册
相关的文档10bet官方网站 下载本手册
PDF(美国Ltr)- 41.6 mb
PDF (A4)- 41.7 mb
HTML下载(TGZ)- 9.3 mb
HTML下载(Zip)- 9.4 mb
手册(TGZ)- 262.1 kb
手册(Zip)- 372.2 kb
信息(Gzip)- 4.0 mb
信息(邮政编码)- 4.0 mb
本手册节选

B.3.2.8报文过大

通信包是发送到MySQL服务器的一条SQL语句,发送到客户机的一行,或者从复制源服务器发送到副本的一个二进制日志事件。

可以从MySQL 8.0服务器或客户端传输的最大数据包是1GB。

当MySQL客户端或mysqld服务器接收到大于max_allowed_packet字节,它发出一个ER_NET_PACKET_TOO_LARGE错误并关闭连接。与一些客户,你也可能得到一个在查询过程中与MySQL服务器失去连接如果通信包太大,则错误。

客户机和服务器都有它们自己的max_allowed_packet变量,所以如果您想处理大的包,您必须在客户机和服务器中都增加这个变量。

如果您正在使用mysql客户端程序,其默认值max_allowed_packet变量为16MB。要设置更大的值,请开始mysql是这样的:

shell> mysql——max_allowed_packet=32M

这将包大小设置为32MB。

服务器的默认值max_allowed_packet值为64MB。如果服务器需要处理大型查询(例如,如果您正在处理大型查询),您可以增加这个值列)。例如,将变量设置为128MB,像这样启动服务器:

shell> mysqld——max_allowed_packet=128M

也可以使用选项文件进行设置max_allowed_packet.例如,将服务器的大小设置为128MB,在选项文件中添加以下行:

(mysqld) max_allowed_packet = 128

增加这个变量的值是安全的,因为只有在需要时才会分配额外的内存。例如,mysqld仅当发出长查询或mysqld必须返回一个大的结果行。该变量的小默认值是一种预防措施,可以捕获客户端和服务器之间的错误包,还可以确保不会因意外使用大包而耗尽内存。

如果使用大数据包,还会遇到奇怪的问题价值观却不曾给予mysqld访问足够的内存来处理查询。如果你怀疑是这种情况,试着添加Ulimit -d 256000至始至终mysqld_safe脚本和重新启动mysqld