mysql导入超大sql文件

mysql导入超大sql文件

在网上找了个2017年行政区划的sql文件,需要导入到本地mysql库中,同事使用navicat导入的时候直接卡死了,该SQL文件差不多112MB大小。通过百度、google找到很多办法,有的博客提供的方法还有坑,最终通过实践找到了一个好用而且可行的办法:

注意:本操作环境为:windows10、mysql5.7.17版本,linux平台步骤基本一样。

1)使用cmd进入mysql并切换到对应的库:

mysql –uroot –p123456 
use bart; 

2)关闭sql_log_binautocommitmax_allowed_packet选项:

show VARIABLES like '%sql_log_bin%'; # 查看参数值
show VARIABLES like '%autocommit%'; 
set sql_log_bin=0; #  关闭日志 
set autocommit=0; #  关闭 autocommit 自动提交模式 

#  查看默认是  4194304 = 4M  ,我们修改为  400M  即  419430400   
show VARIABLES like '%max_allowed_packet%';   
#  注意要使用  global  设置否则不成功 
set global max_allowed_packet= 419430400; 

3)手动开启事务,并导入大SQL文件:

#  手动开启事务并导入 
start transaction; 
source C:/Users/Bart/Desktop/cnarea20171031/cnarea20171031.sql 
commit; 

4)恢复默认参数:

#  恢复旧的配置 
set sql_log_bin=1; #  打开日志 
set autocommit=1; #  打开 autocommit 自动提交模式 
set global max_allowed_packet= 4194304; #  修改为默认值 

性能爆强 112M 的 70W 数据使用了 8.37 秒就导入完成!!!

参考:

mysql.conf配置文件的配置文档:https://dev.mysql.com/doc/refman/5.7/en/option-files.html

原文地址:https://www.cnblogs.com/bartggg/p/12058557.html