Когда я использую mysql в Docker, и я нахожу проблему: В MySQL конфигурационном файле my.cnf я устанавливаю следующее:
[mysqld]
datadir=/var/lib/mysql
user=Tim
...
Но если вы знаете, что разрешение /var/lib равно 755, то есть, как drwxr-xr-x, только пользователь root может создавать файл в этом каталоге. Но почему mysql может создать файл в /var/lib с пользователем Tim?
Скрипт запуска по-прежнему работает от имени пользователя root
, а затем переключается:
Запустите сервер mysqld как пользователь с именем user_name или числовым идентификатором пользователя user_id. ("Пользователь" в данном контексте относится к учетной записи входа в систему, а не к пользователю MySQL, указанному в таблицах привилегий.)
Эта опция обязательна при запуске mysqld от имени пользователя root. Сервер меняет свой идентификатор пользователя во время своей последовательности запуска, заставляя его работать от имени этого конкретного пользователя, а не от имени пользователя root.
Взято из --user
документации.