2017-08-05 9 views
1

私はhomebrew経由でMySQLをインストールしました。これらはinstructionsです。 homebrewがインストールするサービスはLaunchAgentです。これはうまく動作しますが、私のユーザーがログインしている間だけ実行されます.MySQLを常に稼働させたいのです。MySQL LaunchDaemonがmacOSで動作していませんEl Capitan Server

私は、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は終了します。

すでにrelated question on stackoverflowがありますが、LaunchAgent(runs at login rather than at boot)経由でサービスを追加する方法は誰もが回答しているようです。

/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補助

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 

答えて

0

私はこれを理解しました。 LaunchDaemon plistが実行されていて、5秒ごとに起動しようとしましたが、データフォルダ/usr/local/var/mysql_mysqlグループにないため、mysqld_safeが起動時に窒息していました。私はそのフォルダの所有権を_mysql:wheelに変更しました。

関連する問題