MySQL Table Data Import Wizard无法完整导入CSV文件所有行
CSV导入MySQL中途停止的排查解决步骤
- 精准定位问题行:把1506行及前后3-5行的内容单独存成一个小CSV文件,尝试导入。重点检查该行有没有隐藏的特殊字符(比如诡异的换行符、制表符、全角符号),可以用记事本打开开启“显示所有字符”功能查看,或者用命令行工具排查:
- Linux/macOS:
cat -A your_small_file.csv - Windows:
findstr /n /r "." your_small_file.csv
- Linux/macOS:
- 用命令行工具导入并抓错误:别依赖图形化工具的模糊提示,直接用MySQL自带的
LOAD DATA INFILE命令,同时强制输出错误信息:
执行后如果失败,直接看MySQL的错误日志,路径一般是:LOAD DATA INFILE '/绝对路径/你的文件.csv' INTO TABLE 目标表名 FIELDS TERMINATED BY ',' ENCLOSED BY '"' -- 按需调整分隔符和包围符 LINES TERMINATED BY '\n' IGNORE 1 LINES; -- 如果CSV有表头就加这行- Linux:
/var/log/mysql/error.log - Windows:MySQL安装目录下的
data文件夹里的.err文件
日志里会明确告诉你是字符编码错了、字段长度不够还是数据格式不匹配。
- Linux:
- 统一CSV换行符:Excel存的CSV经常会混着
\r\n和\n两种换行符,导致MySQL识别混乱。用文本编辑器(比如Notepad++)打开CSV,把所有换行符统一替换成\n(Unix格式)或者\r\n(Windows格式)再试。 - 对齐编码格式:确认CSV文件的编码和目标表的编码完全一致(比如都是UTF-8)。如果CSV是GBK编码,导入时加上编码声明:
LOAD DATA INFILE '/绝对路径/你的文件.csv' INTO TABLE 目标表名 CHARACTER SET gbk FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n' IGNORE 1 LINES; - 校验字段约束:把1506行的数据单独拿出来,写个
INSERT语句手动插入表中,看会不会报错:
比如可能是某个字符串长度超过了表字段的INSERT INTO 目标表名(字段1,字段2,...) VALUES ('对应值1','对应值2',...);VARCHAR限制,或者日期格式不符合MySQL要求,手动插入会直接抛出具体错误。
内容的提问来源于stack exchange,提问作者Volks
相关产品推荐
相关产品推荐

