向MySQL Workbench导入大量csv数据仅成功18行问题求助
CSV大文件导入MySQL Workbench仅成功18行的解决建议
第一步:排查导入配置错误
- 校验字段类型与长度:确认建表时的字段定义和CSV内容匹配,比如字符串字段的长度设置过短、数值字段存在非数字内容,都会触发插入失败导致导入中断。可先将所有字段临时修改为
TEXT类型测试全量导入,若导入成功再逐步调整为合理字段类型。 - 核对分隔符/转义规则:导入向导中选择的列分隔符、字符串包裹符必须和CSV实际格式完全一致。若CSV部分内容包含分隔符,需确认内容是否用引号包裹,同时在向导中配置对应的转义规则,避免字段识别错乱导致行解析失败。
- 确认行终止符配置:不同系统生成的CSV行终止符存在差异,Windows为
\r\n、Linux/macOS为\n,识别错误会导致行合并或者提前终止导入,可在导入向导的高级设置中手动指定行终止符,也可以用普通文本编辑器将CSV转成统一格式后再导入。
第二步:排查CSV文件异常
- 定位中断点内容错误:导入在18行后终止,大概率是第19行附近存在异常内容,比如不可见特殊字符、空行、字段数量和表头不匹配、未转义的引号/反斜杠。可单独截取CSV前50行测试导入,定位到异常行后手动修复内容即可。
- 确认文件编码匹配:导入时指定的编码和CSV实际编码不一致会触发乱码报错,含中文的CSV优先尝试指定编码为
UTF-8mb4,避免生僻字符识别失败。
第三步:大文件最优导入方案
MySQL Workbench的图形化导入向导本身对大体积文件的支持较差,容易出现超时、内存不足的问题,35万行级别的文件推荐使用原生LOAD DATA命令导入,性能更高且报错信息明确,参考命令如下:
-- 先开启本地文件导入权限 SET GLOBAL local_infile = 1; LOAD DATA LOCAL INFILE 'C:/xxx/你的文件.csv' -- 注意Windows路径用斜杠/代替反斜杠 INTO TABLE 你的目标表名 CHARACTER SET utf8mb4 FIELDS TERMINATED BY ',' -- 替换为你实际的列分隔符 ENCLOSED BY '"' -- 替换为你实际的字符串包裹符,没有则去掉该行 ESCAPED BY '\\' LINES TERMINATED BY '\r\n' -- 替换为你实际的行终止符 IGNORE 1 ROWS; -- 如果CSV第一行是表头则保留该行,否则去掉
如果依然有导入限制,可将35万行CSV拆分为多个1-5万行的小文件分批导入。
内容的提问来源于stack exchange,提问作者bensmith23751
相关产品推荐
相关产品推荐

