欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

mysql ‘max_allowed_packet’ 问题

程序员文章站 2022-04-21 13:05:14
...
mysql

本人自建一个网站,监控公司内部核心交换机端口流量及CPU利用率,在网站使用过程中发现,php经常无法将数据写入数据库,调试后发现提示"Got a packet bigger than'max_allowed_packet' bytes"。后修改了mysql配置文件,改为max_allowed_packet=512m,保存并重启MYSQL。之后在mysql控制台 show VARIABLES like 'max_allowed_packet';显示也确实是512M,说明mysql中max_allowed_packet已经改为512M了。可是之后还是会出现无法写入问题,调试后仍然显示是Got a packet bigger than'max_allowed_packet' bytes。这个故障发生并无规律可循,一般重启mysql进程后就正常了,但是一段时间后,通常是5-6个小时后,故障重现,然后后续数据全部无法写入。其实写入的数据量其实并不大,是交换机端口的流量的一个json格式文件,在数据库中以mediumtext类型储存。本人将其中8小时的数据复制出来,检查大小为45KB,那么理论上一天的数据量最大也不会超过300K。所以对这个现象感到很困惑。
一下是my.cnf配置文件的[mysqld]部分:
port = 3306
socket = /tmp/mysql.sock
datadir = /usr/local/mysql/var
skip-external-locking
skip-name-resolve
skip-grant-tables
key_buffer_size = 64M
max_allowed_packet = 32M
table_open_cache = 512
sort_buffer_size = 8M
net_buffer_length = 312K
read_buffer_size = 4M
read_rnd_buffer_size = 2M
另外提到一点,就是web服务器每5分钟会执行php页面,也就是说每5分钟就要去读并写入一次,这个问题会不会和php页面被持续执行有关?

本人对mysql具体设置并不在行,请大家帮忙。

相关标签: mysql