Ошибка MySQL при загрузке данных CSV-файла в таблицу

461
Learning

Я пытаюсь загрузить содержимое файла CSV в таблицу, используя следующие команды MySQL для Windows:

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

2 ответа на вопрос

1
Alex

Это не проблема, а функция безопасности, вам нужно явно включить для каждого включения базы данных из локального файла:

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  
0
LSerni

Код ошибки: 29. Файл 'C: \ Users \ TD_DI_026.csv' не найден (ОС errno 13 - В доступе отказано)

MySQL не может получить доступ к файлу C:\Users, возможно, потому что он принадлежит вам.

Поместите его туда, где MySQL Server сможет достучаться до него, или явно предоставьте доступ к некоторому каталогу пользователю MySQL.