Warning : PDO::query(): MySQL server has gone away in E:\WWW\test\test3.php on line 170
Warning: PDO::query(): Error reading result set's header in E:\WWW\test\test3.php on line 170
当一次性插入2000条数据时 便报了此错误。
解决方法:
查看资料,发现了 max_allowed_packet 参数,
官方解释是适当增大 max_allowed_packet 参数可以使client端到server端传递大数据时,系统能够分配更多的扩展内存来处理。
查看mysql max_allowed_packet的值
- 1
- 2
- 3
- 4
- 5
- 6
- 1
- 2
- 3
- 4
- 5
- 6
可以看到是4M,然后调大为256M(1024*1024*256)
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
修改后执行导入,一切正常,解决问题。
注意:
使用set global命令修改 max_allowed_packet 的值,重启mysql后会失效,还原为默认值。
如果想重启后不还原,可以打开 my.cnf 文件,添加 max_allowed_packet = 256M 即可。