数据库导入过程中发现出现了大量数据的丢失,然后具体的报错是 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




Published with Hexo and Theme by Kael
X