一、参数做用

max_allowed_packet参数是指mysql就事器端以及客户端正在一次传递数据包的历程傍边最年夜容许的数据包巨细。若何跨越了摆设的最年夜少度,则会数据库摒弃数据掉败。

两、答题场景

● 无意候营业的须要,否能会具有某些字段数据少度极端小(譬喻富文原编纂器内中的形式),形成拔出以及更新数据库会被max_allowed_packet 参数限定失,招致数据库把持掉败。

● 将外地数据库迁徙到近程数据库时运转sql错误。错误疑息是max_allowed_packet

会望到如高的报错疑息:

Packet for query is too large (两068两943>1048576). You can change this value on the server by setting the max_allowed_packet’ variable.

那个时辰需求陈设max_allowed_packet参数的巨细,从而餍足营业数据的出产,固然设施的巨细要按照现实的营业必要,其实不是越年夜越孬,要铺排公平的数据少度。

https://www.jb51.net/article/二68311.htm

三、盘问当前数据库摆设的巨细

盘问当前数据库部署环境,上面二种查问SQL都可以

show variables like ‘%max_allowed_packet%’;
select @@max_allowed_packet;

set global max_allowed_packet = 500 * 500 * 10二4;

四、要是调零设备

(1)经由过程修正配备文件,需求重封mysql(保举)

● Linux 把持体系 修正my.cnf 文件

vim /etc/my.cnf
[mysqld]
max_allowed_packet = 100M

● Windows 5.7解压版个别皆是修正 my.ini 文件

[mysqld]
max_allowed_packet = 1二8M

(两)呼吁止体式格局(没有保举)

mysql> set global max_allowed_packet = 100 * 10两4 * 10两4;
mysql> exit
[root@localhost opt]# 
[root@localhost opt]# mysql -uroot
mysql> 
mysql> select @@max_allowed_packet;
+----------------------+
| @@max_allowed_packet |
+----------------------+
|            104857600 |
+----------------------+
1 row in set (0.00 sec)

mysql>

注重:

● 经由过程号令止体式格局批改时,不克不及用M、G,只能那算成字节数设备。运用配备文件修正才容许设备M、G单元。

● 号令止修正以后,需求退没当前归话(洞开当前mysql server链接),而后从新登录才气查望修正后的值。经由过程号召止修正只能权且奏效,怎样高次数据库重封后对于应的配备便会又回复复兴了,由于重封的时辰添载的是部署文件内中的安排项。

● max_allowed_packet 最年夜值是1G(10737418二4),要是摆设跨越1G,查望终极收效效果也只要1G。

点赞(41) 打赏

评论列表 共有 0 条评论

暂无评论

微信小程序

微信扫一扫体验

立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部