Windows导入大型sql文件到mysql

Windows导入大型sql文件到mysql

因需求,有个大小约9GB的.sql文件需要导入到mysql数据库,正好是周末也不急,为了省事就用了可视化工具datagrip运行了sql文件,结果睡一觉起来发现还没导入完成,给我震惊的。

后面还是准备用命令来导入

觉得比较实用,分享一下

因为这个文件比较大,所以前期需要做一些准备工作,首先是找到mysql的配置文件:my.ini

其次是找到mysql的安装地址,Windows上找到这两个比较简单
首先:

打开服务,cmd>servermanager.msc

找到mysql服务,可以右键>属性查看

一般都是默认的,如果你没改过地址的话

bash 复制代码
"C:\Program Files\MySQL\MySQL Server 8.0\bin\mysqld.exe" --defaults-file="C:\ProgramData\MySQL\MySQL Server 8.0\my.ini" MySQL80

打开配置文件修改参数,my.ini,记得保存

bash 复制代码
# 最大数据包大小(必须大于 SQL 文件中最大语句,9GB 文件设 2G)
max_allowed_packet = 2G

# InnoDB 缓冲池(根据内存调整:8GB 内存设 4G,16GB 设 8G,32GB 设 16G)
innodb_buffer_pool_size = 6G  # 请按你的内存修改,例如 8GB 内存改为 4G

# 日志文件大小(减少切换频率)
innodb_log_file_size = 1G

# 临时关闭实时刷盘(导入后改回 1)
innodb_flush_log_at_trx_commit = 0

在Windows服务页面重启MySQL服务

然后在MySQL的安装目录下执行命令

第一步:打开 "加速开关"(必须先做)
(保持这个窗口打开,别关)!!!

bash 复制代码
mysql -uroot -p

继续输入

bash 复制代码
USE 数据库名; -- 切换到你的数据库
SET autocommit=0;
SET foreign_key_checks=0; -- 禁用外键检查(提速核心)
SET unique_checks=0;      -- 禁用唯一索引检查(避免重复校验)
SET sql_log_bin=0;        -- 临时禁用二进制日志(减少写入开销)

再开一个 "管理员命令提示符"依旧是在这安装目录下执行(新窗口,别关第一个)

bash 复制代码
mysql -uroot -p --default-character-set=utf8mb4 l0862wms < "D:\backup\你的9GB文件.sql"

按回车后,输入 MySQL 密码,回车就开始导入了(命令行窗口会 "卡住",这是正常的,说明在执行)。

导入期间注意事项

别关闭两个命令行窗口,也别让电脑休眠(可以把屏幕关掉,不影响后台执行)。

可以偶尔打开任务管理器,看 mysqld.exe 的 "磁盘 IO 占用"(有波动说明在正常导入,没波动可能是卡在某条语句,耐心等几分钟再看)。

可以看到正在积极的执行写入

相关推荐
bug和崩溃我都要2 小时前
QT 开发的专业截图录屏工具 - macOS版 / Windows版
windows·qt·mac·录屏·截屏
kimloner2 小时前
开源一个 376KB 的 Windows 桌面小工具:便签 + 截图标注 + OCR + 待办提醒(C# / WinForms)
windows·开源·c#·ocr·winforms
摸鱼 特供版2 小时前
一款边录边标注的轻量截图录屏工具
windows·学习·电脑·音视频·软件需求
天天喝旺仔3 小时前
MySQL 索引原理与慢查询优化实战:从 B+ 树到执行计划调优
数据库·sql·mysql·性能优化
专业程序开发源3 小时前
flask家电故障预测系统92491-计算机课程设计/毕业设计
vscode·python·sql·算法·flask·课程设计
夜雪一千3 小时前
Python 生成模拟地址数据:Faker之外的备选库
网络·windows·python
无忧.芙桃4 小时前
C++语言原理与实践(十二):list类的底层实现
c++·windows·list
m0_646429974 小时前
MySQL 初始化 SQL 中文乱码问题总结
数据库·sql·mysql
实战派K8S&DB4 小时前
TDSQL 核心模块与进程体系
运维·数据库·分布式·sql·mysql
Lost_the_wind4 小时前
MySQL 学习笔记三
笔记·学习·mysql