MySQL 在将 CSV 文件数据加载到表中时出错

MySQL 在将 CSV 文件数据加载到表中时出错

我正在尝试使用 Windows 上的以下 MySQL 命令将 CSV 文件的内容加载到表中:

LOAD DATA LOCAL INFILE 'C:/Users/TD_DI_026.csv'
INTO TABLE digitalTags
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n'
IGNORE 1 ROWS;

但这给了我一个错误The used command is not allowed with this MySQL version 我已经修改了 my.ini 文件以包含:

[mysql]
loose-local-infile=1

和命令

SHOW GLOBAL VARIABLES LIKE 'local_infile';

显示 local_infile 已打开。

我也尝试过删除Local并设置secure_file_priv = ""my.ini 但是我得到了Error Code: 29. File 'C:\Users\TD_DI_026.csv' not found (OS errno 13 - Permission denied)

什么原因导致了这个问题?

答案1

这不是一个问题,而是一个安全功能,您需要从本地文件明确启用每个数据库包含:

mysql -u user -p --local-infile=1 YourDatabaseName

确保user授予FILE 特权

另外,不要将 CSV 文件放在 中C:\Users\TD_DI_026.csv,而是使用以下位置:

C:\Users\Public\Download\TD_DI_026.csv

还请添加以下内容my.cnf/my.ini

[mysqld]
     local-infile = 1 

答案2

错误代码:29.未找到文件“C:\Users\TD_DI_026.csv”(OS errno 13 - 权限被拒绝)

MySQL 无法访问中的文件C:\Users,可能是因为它归您所有。

将其放置在 MySQL 服务器可以访问的地方,或者明确授予 MySQL 用户对某个目录的访问权限。

相关内容