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,查询的才是全局变量。