数据库导入过程中发现出现了大量数据的丢失,然后具体的报错是 ERROR 2006,表示没见过这样的问题,所以为了继续干活进行下查询吧。
具体错误
执行数据批量导入出现报错信息
1 2 3 4
| ERROR 2006 (HY000) at line 20840 in file: '/home/sundaydx/Tools/768545_all.sql': MySQL server has gone away No connection. Trying to reconnect... Connection id: 338 Current database: sm
|
检查sql文件发现这个执行行一次性需要导入5w+条目的数据,可能是因为单条记录太大造成的,所以查询数据库支持的最大值
1 2 3 4 5 6 7
| MariaDB [sm]> show global variables like 'max_allowed_packet'; +--------------------+---------+ | Variable_name | Value | +--------------------+---------+ | max_allowed_packet | 1048576 | +--------------------+---------+ 1 row in set (0.04 sec)
|
恩,上限是1M,估计就是这个的原因了,所以进行调整
解决方案
临时方案: MariaDB [sm]> set global max_allowed_packet=1024*1024*16;
提升上限到16M,重启后失效
永久方案: 编辑my.cnf文件,设置max_allowed_packet = 16M