mysql 的sql文件太大怎么导入

来自百度知道: 

在实际工作中,有时需要导入大容量sql文件到MySQL,通常有以下三种方法:
(1)通过phpmyadmin,不推荐,有内存等的限制;
(2)通过Navicat Premium工具运行sql,不推荐,效率低;
(3)通过source命令导入,推荐,效率高,经测试,小编导入一个3.02G的文件耗时3分08秒;
打开MySQL安装目录下的my.ini文件,添加max_allowed_packet,设置大小为64M,如下:

在服务中重新启动MySQL服务,在命令行窗口(命令:show VARIABLES like '%max_allowed_packet%';)查看是否修改成功:

在命令行窗口中使用source命令(source sql文件路径)导入sql文件,如下(我们可以看到,执行效率比较高):

MySQL的source命令

用MySQL的source命令导入SQL文件实战记录。

进入 CMD
执行 mysql -uroot -p 输入密码后进入 MySQL 命令提示符
依次执行:

use XXXdatabase;
set charset utf8;
source d:/xxx.sql;

 我的300多M的文件,这样就行了,下面是原文的讲解:

本以为这样就可以挂机等待 sql 文件如期导入了,但是事与愿违,当过一段时间在打开时发现命令行提示链接超时,等待重新链接。
这时候需要再执行以下 sql:

set global max_allowed_packet=100000000;
set global net_buffer_length=100000;
set global interactive_timeout=28800000;
set global wait_timeout=28800000;

以上语句的解释:
max_allowed_packet=XXX 客户端/服务器之间通信的缓存区的最大大小
net_buffer_length=XXX TCP/IP 和套接字通信缓冲区大小,创建长度达 net_buffer_length 的行
interactive_timeout 对后续起的交互链接有效时间
wait_timeout 对当前交互链接有效时间。

发布了173 篇原创文章 · 获赞 29 · 访问量 29万+

猜你喜欢

转载自blog.csdn.net/qq_29058883/article/details/103980393