超大sql文件使用navicat导入会很慢,还有可能报“mysql server has gone away”错误
可以登陆mysql服务器使用source命令导入,会快很多,我这里导入500M,大概用了5分钟。
1. liunx登陆mysql
mysql -u 用户名 -p 数据库名
然后输入密码
登陆mysql控制台后,执行source命令,等待执行完成就好,(如果你的文件过大,执行报错,那么你需要用到第二步)
source /home/xxx.sql //这里是你上传到linux上到sql文件路径
2.修改max_allowed_packet值
sql文件过大,mysql执行时超过最大包大小,导致连接断开,导入时报“mysql has gone away”错误
客户端max_allowed_packet取值范围4096-2G,默认值是16M
客户端net_buffer_length取值范围1024-512M,默认值16K
服务器max_allowed_packet取值范围1024-1G,默认值是1M
服务器net_buffer_length取值范围1024-1M, 默认值16K
//查看通信缓冲区的大小
show global variables like 'max_allowed_packet';
//调整大小到500M
set global max_allowed_packet=1024*1024*500;
接下来重新导入,导入成功!
注:修改只对当前有效, 重启了MySQL他就还是会恢复原来的大小。如果是想永久生效,可以修改配置文件,在 mysql安装目录,在my.ini(windows下)或者my.cnf(linux下)中加入或修改配置参数:
max_allowed_packet = 500M
重启MySQL服务...