MySQL secure-file-priv配置问题:执行LOAD DATA INFILE报错1290
解决MySQL LOAD DATA INFILE 1290错误问题
问题描述
尝试执行以下SQL语句将CSV文件导入__dna_table表:
LOAD DATA INFILE 'C:/ProgramData/MySQL/MySQL Server 8.0/Uploads/data.csv' INTO TABLE __dna_table FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\r\n' IGNORE 1 LINES (variant, variant_allele_count, total_allele_count, number_of_homozygotes, allele_frequency);
返回错误:
Error Code: 1290. The MySQL server is running with the --secure-file-priv option so it cannot execute this statement
已确认my.ini配置文件中设置了secure-file-priv="",当前连接本地WordPress的MySQL数据库。
解决方案
1. 验证生效的配置参数
修改配置后可能未生效,执行以下SQL查看当前secure-file-priv的实际值:
SHOW VARIABLES LIKE 'secure_file_priv';
- 若结果显示为具体路径,说明服务器未读取你修改的
my.ini,可通过命令mysql --help | findstr /i "Default options"在Windows系统中定位正确的配置文件。 - 若结果为空为空字符串,继续后续步骤。
2. 重启MySQL服务
配置修改后必须重启服务才能生效:
- 按Win+R输入
services.msc打开服务管理器。 - 找到对应MySQL服务(如
MySQL80),右键选择重启。
3. 检查文件权限与路径
- 确保
data.csv文件权限允许MySQL服务账户(通常为NETWORK SERVICE或Local System)访问。 - 路径使用正斜杠
/或双反斜杠\\,避免转义问题。
4. 改用LOCAL关键字读取本地文件
若上述方法无效,添加LOCAL关键字从客户端本地读取文件,绕过服务器的secure-file-priv限制:
LOAD DATA LOCAL INFILE 'C:/ProgramData/MySQL/MySQL Server 8.0/Uploads/data.csv' INTO TABLE __dna_table FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\r\n' IGNORE 1 LINES (variant, variant_allele_count, total_allele_count, number_of_homozygotes, allele_frequency);
注意:使用该方式需开启MySQL Workbench的本地数据加载权限:
- 进入Edit > Preferences > SQL Editor。
- 勾选Allow Load Local Data,重启Workbench后生效。
内容的提问来源于stack exchange,提问作者atricoky
相关产品推荐
相关产品推荐

