mysql server has gone away insert into||Variable ‘time_zone’ can’t be set to the value of ‘NULL’

将一个很大数据库文件插入到本地数据库时,碰到如下错误,

mysql server has gone away insert into
Variable ‘time_zone’ can’t be set to the value of ‘NULL’

其实两个错误都是因为一个问题引起,就是 mysql 的 max_allowed_packet

快速解决这个问题的步骤如下:

1、使用终端登录到 mysql

mysql -u root -p

2、接着查看max_allowed_packet的值。

show VARIABLES like 'max_allowed_packet';

3、假设值为67108864 ,换算成 M。

select 67108864/1024/1024;

最后得到的值就是 max_allowed_packet,引起上面问题的原因是这个值太小了。一般是在插入数据库文件时,数据库文件太大,而这个值太小了。

所以要将它设大点,快速解决的方法是临时设置,而不是去文件设置

4、为max_allowed_packet设置一个值,最好比你的数据库文件要大,比如 500M,实在不行就设置成 1024M。

set global max_allowed_packet = 1024 * 1024 * 500;

5、如果不放心,设置完用这个命令查看数值是否发生变化。

show global VARIABLES like 'max_allowed_packet';

6、再就没问题了,但这种设置只是临时性的,只要mysql重启,这个值又变回原来的。

本文由老郭种树原创,转载请注明:https://guozh.net/mysql-server-has-gone-away/

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注