Согласно этой документации , вы можете настроить secure-file-priv
через командную строку, передав --secure-file-priv=dir_name
secure-file-priv Возможные значения: пустая строка, dirname или NULLкак объяснено в приватном URL.
со страницы mysql-docker :
Конфигурация без файла cnf : Многие параметры конфигурации могутпередаваться как флаги в mysqld.Это даст вам гибкость в настройке контейнера без использования файла cnf.Например, если вы хотите изменить кодировку и параметры сортировки по умолчанию для всех таблиц, чтобы использовать UTF-8 (utf8mb4), просто выполните следующее:
$ docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
Итак, в нашем случае это будет выглядеть так:
dir_name должен быть каталогом внутри вашего контейнера, в противном случае вы получите следующую ошибку: mysqld: Error on realpath() on 'dir_name' (Error 2 - No such file or directory)
$ docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag --secure-file-priv=dir_name
А теперь наше изменениефиксируется в MySQL
mysql> SHOW VARIABLES LIKE "secure_file_priv";
+------------------+----------+
| Variable_name | Value |
+------------------+----------+
| secure_file_priv | dir_name |
+------------------+----------+
Кроме того, вы можете использовать пользовательский файл конфигурации, как описано здесь:
Использование пользовательского файла конфигурации MySQL :Конфигурацию по умолчанию для MySQL можно найти в /etc/mysql/my.cnf, который может включать в себя! дополнительные каталоги, такие как /etc/mysql/conf.d или /etc/mysql/mysql.conf.d.Пожалуйста, проверьте соответствующие файлы и каталоги в самом изображении mysql для получения более подробной информации.
Если /my/custom/config-file.cnf - это путь и имя вашего пользовательского файла конфигурации, вы можете запустить контейнер mysql.как это (обратите внимание, что в этой команде используется только путь к каталогу пользовательского файла конфигурации):
$ docker run --name some-mysql -v /my/custom:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag
Это запустит новый контейнер some-mysql
, где экземпляр MySQL использует комбинированный запускнастройки от /etc/mysql/my.cnf
и /etc/mysql/conf.d/config-file.cnf
, причем настройки последнего имеют приоритет.