首页  >  文章  >  数据库  >  mysql ‘max_allowed_packet’ 问题

mysql ‘max_allowed_packet’ 问题

WBOY
WBOY原创
2016-06-06 09:34:521241浏览

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具体设置并不在行,请大家帮忙。

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn