Я использую MySQL 8 на официальном образе Docker.
Когда я запускаю образ MySQL, я передаю опцию запуска docker: --secure-file-priv, за которой следует путь к каталогу dir внутри контейнера докера, который я хочу использовать для импорта данных в таблицы из файлов.
Все работает хорошо. Я подключаюсь к контейнеру базы данных из другого контейнера MySQL, используемого как CLI, и нет проблем с импортом данных.
Однако, это работает, только если я передаю полный путь к каталогу, который я установил ранее с --secure-file-priv, с суффиксом к файлу, который я хочу импортировать.
Итак, этот способ работает:
LOAD DATA INFILE 'secure-file-priv-dir/file.csv';
Но это не так:
LOAD DATA INFILE './file.csv';
Есть ли способ установить secure-file-priv-dir/
в качестве рабочего каталога для команд импорта или экспорта данных?
Возможно, в MySQL есть еще один varialbe, который нужно установить.
Я пытался установить рабочий каталог MySQL-контейнера с параметром -w
, установленным на secure-file-priv-dir/
, при использовании команды docker run
, но это не помогло, а также я не уверен, не является ли эта настройка склонной к ошибкам для будущие обновления MySQL в случае, если им потребуется установить их рабочий каталог так же, как в Dockerfile.