【mysql】如何在MySQL中导入超大的SQL文件?
方法
1.在navicat中导入(速度慢)
2.使用source命令导入(速度快)
第一种很简单,本文只介绍第二种。
步骤
1.查询mysql的安装位置
执行命令:
which mysql1
当然也可以在系统的环境变量中查找mysql的安装位置,或者用whereis命令查找。
2.修改该目录下my.ini文件中max_allowed_packet
因为默认max_allowed_packet为1k,如果导入的文件过大。可能会报错。
我们将该值改大一点,我这里设为1G。
[client]
port=3306
default-character-set=utf8
[mysqld]
port=3306
character_set_server=utf8
max_allowed_packet=166666m
wait_timeout=288000000
interactive_timeout= 288000000
=================
max_allowed_packet=166666m 这个是限制文件大小的由于要上传6个G所以改成1111111M 额应该够了吧
wait_timeout=288000000 等待超时。。看事改吧,我在后面加了好几个0.。。
interactive_timeout= 288000000 运行超时。。。。看事改吧,我在后面加了好几个0.。。
设置好了之后可以通过以下命令来查看:show VARIABLES like '%max_allowed_packet%';注意别忘了写分号。
3.重启mysql服务
window快捷键win+r进入运行工具——>输入services.msc——>找到mysql的服务,右键点击重启。
4.重新登录mysql并执行source
接着就是用命令行导入sql文件了,首先在命令行中切换到MySQL下的bin目录,然后输入命令mysql -u root -p
C:\Users\111>mysql -u root -p
mysql>use mydb;
mysql>set names utf8;#根据情况,要保证编码一致
SET FOREIGN_KEY_CHECKS=0;
mysql>source D:/dataFile/back.sql; #注意这是左斜杠
我导入11G的数据大概用了半个多小时。
5.去navicat中查看是否成功导入了