今天用phpmyadmin导入数据库数据,由于数据库文件稍大一些足有三四十兆,导入时直接出现内存分配不足的fatal error。不得不用命令行导入恢复数据库:mysql -u user -p pass database<data.sql 结果,出现了奇怪的“MySQL server has gone away”。网上搜索了一下,需要修改一下mysql的配置文件。
针对这种情况的出现的成因有两种:
1、应用程序(比如PHP)长时间的执行批量的MYSQL语句。最常见的就是采集或者新旧数据转化。可以通过修改配置文件添加上
wait_timeout=2880000
interactive_timeout = 2880000
延长执行和交互时间,如果不能直接修改mysql.conf,也可以在执行sql文件中最前面加一句”set interactive_timeout=24*3600″,将执行时间延长。
2、执行一个SQL,但SQL语句过大或者语句中含有BLOB或者longblob字段。比如,图片数据的处理。需要设置一下“通信缓冲区的最大长度”
max_allowed_packet = 100M
最新评论