MySQL 8.0导入CSV文件失败求助:报错2068/1083/3948
MySQL 8.0 CSV导入失败(错误2068/1083/3948)解决方案
一、修正LOAD DATA语法错误
你的导入语句存在语法错误,重复使用TERMINATED BY会触发1083错误,正确写法需区分字段分隔符与行分隔符,同时补充完整Windows路径(包含盘符):
LOAD DATA INFILE 'C:/ProgramData/MySQL/MySQL Server 8.0/Uploads/covid_death.CSV' INTO TABLE death FIELDS TERMINATED BY ',' ENCLOSED BY '"' -- 若CSV字段包含引号,建议添加此参数避免解析错误 LINES TERMINATED BY '\n' IGNORE 1 LINES;
若使用
LOCAL关键字(从客户端本地读取文件),secure_file_priv限制不生效,但需确保客户端开启LOCAL_INFILE支持。
二、解决LOCAL_INFILE禁用导致的2068/3948错误
MySQL 8.0默认禁用LOCAL_INFILE,需手动开启:
- 会话级临时开启:执行LOAD DATA前先运行:
SET GLOBAL local_infile = 1; SET SESSION local_infile = 1; - 命令行客户端开启:打开CMD,用以下命令连接MySQL:
mysql --local-infile=1 -u 你的用户名 -p - Workbench开启:依次进入
Edit > Preferences > SQL Editor,勾选Enable LOCAL INFILE,重启Workbench生效。
三、修复文件路径与权限问题
- 确保CSV路径正确:Windows下可使用正斜杠
/或转义反斜杠\\,必须包含盘符(如C:/...,而非/...)。 - 调整文件夹权限:右键
Uploads文件夹→属性→安全→添加MySQL服务运行用户(通常为Network Service),授予读取权限。
四、解决Import Data Wizard的整数/截断错误
这类错误源于CSV数据与表结构不匹配:
- 核对表结构:确认
death表的列顺序、数据类型与CSV列完全对应,比如整数列不能包含非数字内容,日期列格式需统一。 - 清理CSV数据:检查表头外的行,移除超出字段长度的字符串、多余空格或格式错误内容(如数字列中的逗号)。
- 手动映射列:在导入向导中手动匹配CSV列与表列,避免顺序错位;对存在格式问题的列,可先设为字符串类型导入,处理数据后再转换为目标类型。
内容的提问来源于stack exchange,提问作者Maysara
相关产品推荐
相关产品推荐

