MySQL根据配置文件会限制Server接受的数据包大小。有时候大的插入和更新会受 max_allowed_packet 参数限制,导致大数据写入或者更新失败。
1、查看配置大小
mysql> show VARIABLES like 'max_allowed_packet';+--------------------+-------+| Variable_name | Value |+--------------------+-------+| max_allowed_packet | 1024 |+--------------------+-------+1 row in set (0.00 sec)复制代码
2、通过my.cnf修改参数
文件位置
mysql --help | grep my.cnf order of preference, my.cnf, $MYSQL_TCP_PORT,/etc/my.cnf /etc/mysql/my.cnf /usr/etc/my.cnf ~/.my.cnf复制代码
修改
max_allowed_packet = 500M复制代码
重启mysql
service mysqld restart复制代码
3、mysql 命令修改
set global max_allowed_packet = 5*100*1024*1024复制代码
参数生效范围为global,不是session. 如果服务器重启设置会失效
查询时使用的是show variables的话,发现设置好像并没有生效,这是因为show variables等同于show session variables,查询的是会话变量,只有使用show global variables,查询的才是全局变量。