Я создал скрипт PHP, который импортирует сообщения из CSV-файла на веб-сайт WordPress.
Для этого я сначала импортирую сообщения в таблицу базы данных веб-сайта WP, а затем сценарий PHP создает сообщения.
Я использую массовый запрос MYSQL:
load data local infile '/var/www/vhosts/sitenamehere.test/test.csv' into table test_table character set latin1 fields terminated by ';' lines terminated by '\r\n' ignore 1 lines;
Когда я запускаю скрипт с сервера, я получаю следующую ошибку:
«используемая команда не разрешена в этой версии MariaDB для запроса загрузки данных локального файла …»
Проблема возникает только тогда, когда я выполняю скрипт с сервера, фактически, если я запускаю тот же запрос из phpMyAdmin, он позволяет мне импортировать файл.
Поскольку мои сценарии не только импортируют, но и обновляют сообщения, целью было создать задание cron, чтобы сценарий выполнялся несколько раз в день. Очевидно, что это невозможно, если я продолжаю получать ту же ошибку.
Я попытался добавить:
local-infile=1
под разделом [client]
а также [mysqld]
из my.cnf
mysql.allow_local_infile=On
под [mysql]
разделmy.cnf
mysql.allow_local_infile=On
под [MySQLi]
раздел php.ini
расположен в /opt/plesk/php/7.1/etc
Но ничего не помогло. Есть идеи?
Гид в
https://mariadb.com/kb/en/library/load-data-infile/
говорит
Если системная переменная local_infile установлена в 0, попытки выполнить LOAD DATA LOCAL завершатся неудачно с сообщением об ошибке.
Лучше всего изменить используемый файл my.ini.
Кроме того, пользователю используемой базы данных нужна привилегия FILE.
Других решений пока нет …