MySQL LaunchDaemon не работает на MacOS El Capitan Server
Я установил MySQL через homebrew и эти инструкции. Служба, которую устанавливает homebrew, - это LaunchAgent, который отлично работает, но работает только тогда, когда мой пользователь вошел в систему. Я хочу, чтобы MySQL работал постоянно.
Я пробовал копировать homebrew.mxcl.mysql.plist
в /Library/LaunchAgents
, установка разрешений на 644 root:wheel и загрузка с sudo launchctl -w /Library/LaunchAgents/homebrew.mxcl.mysql.plist
, Хотя sudo launchctl list
показывает, что plist загружен и имеет статус 0, PID отсутствует. Когда я бегу ps aux | grep mysql
Я не вижу никаких связанных процессов.
Запуск команды вручную работает: /usr/local/opt/mysql/bin/mysqld_safe --datadir=/usr/local/var/mysql --bind-address=0.0.0.0
но тогда MySQL завершит работу, если пользователь выйдет из системы.
Уже есть связанный вопрос по stackru, но кажется, что все отвечают, как добавить сервис через LaunchAgent, который запускается при входе в систему, а не при загрузке.
/Library/LaunchDaemons/homebrew.mxcl.mysql.plist
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"
"http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>KeepAlive</key>
<true/>
<key>Label</key>
<string>homebrew.mxcl.mysql</string>
<key>ProgramArguments</key>
<array>
<string>/usr/local/opt/mysql/bin/mysqld_safe</string>
<string>--datadir=/usr/local/var/mysql</string>
<string>--bind-address=0.0.0.0</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>WorkingDirectory</key>
<string>/usr/local/var/mysql</string>
</dict>
</plist>
PS Aux
nperkins$ sudo ps aux | grep mysql
nperkins 15345 0.0 0.0 2444056 816 s001 S+ 7:02PM 0:00.00 grep mysql
Launchctl список
nperkins$ sudo launchctl list | grep mysql
- 0 homebrew.mxcl.mysql
1 ответ
Я понял это. LaunchDaemon plist работал и пытался поддерживать работу каждые пять секунд, но mysqld_safe задыхался от запуска, потому что папка с данными, /usr/local/var/mysql
не был в _mysql
группа. Я изменил владельца этой папки на _mysql:wheel
и теперь это работает.