我正在尝试使用 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 用户对某个目录的访问权限。