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 и теперь это работает.

Другие вопросы по тегам