mysql如何导入超大sql文件

       超大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服务...

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章