起動時にMySQLサーバーを自動起動したいのですが。これはマーベリックスでは可能でしたが、ヨセミテでは機能していないようです。
編集:これはElCapitanでも機能するようです
回答:
@dccはとても近かった。これは、MySQLがYosemiteで再び自動起動する方法です。
com.mysql.mysql.plist
中/Library/LaunchDaemons
:
<?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>com.mysql.mysqld</string>
<key>ProgramArguments</key>
<array>
<string>/usr/local/mysql/bin/mysqld_safe</string>
<string>--user=mysql</string>
</array>
</dict>
</plist>
さらに、この回答に基づいて権限を変更しました
sudo chown root:wheel /Library/LaunchDaemons/com.mysql.mysql.plist
sudo chmod 644 /Library/LaunchDaemons/com.mysql.mysql.plist
最後に、このコマンドを実行します
sudo launchctl load -w /Library/LaunchDaemons/com.mysql.mysql.plist
追加がある場合は、以下で共有してください!
sudo chown root:wheel /Library/LaunchDaemons/com.mysql.mysql.plist
@Xaversの指示に従い、コマンドを実行しようとすると
sudo launchctl load -w /Library/LaunchDaemons/com.mysql.mysql.plist
エラーが発生しました:
/Library/LaunchDaemons/com.mysql.mysql.plist:無効なプロパティリスト
少し頭を悩ませた後、上部のDOCTYPE DTD宣言を削除するとエラーが消え、再起動するとmySQLサーバーが実際に実行されていることがわかりました。
したがって、私のXMLは次のようになります。
<?xml version="1.0" encoding="UTF-8"?>
<plist version="1.0">
<dict>
<key>KeepAlive</key>
<true/>
<key>Label</key>
<string>com.mysql.mysqld</string>
<key>ProgramArguments</key>
<array>
<string>/usr/local/mysql/bin/mysqld_safe</string>
<string>--user=mysql</string>
</array>
</dict>
</plist>
/Library/LaunchDaemons/com.mysql.mysql.plist
次のplistを使用して作成し、保存します。
<!--?xml version="1.0" encoding="UTF-8"?-->
<plist version="1.0">
<dict>
<key>KeepAlive</key>
<true>
<key>Label</key>
<string>com.mysql.mysqld</string>
<key>ProgramArguments</key>
<array>
<string>/usr/local/mysql/bin/mysqld_safe</string>
<string>--user=mysql</string>
</array>
</true>
</dict>
</plist>
次に、新しく作成されたplistファイルをロードします
sudo launchctl load -w /Library/LaunchDaemons/com.mysql.mysql.plist
apachectl start
サーバーを起動します!?それらは関連していますか?
sudo launchctl load -w...
エラーがスローされますInvalid property list
この記事は、無効なエラーの問題を解決するのに役立ちます。以下で使用した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>com.mysql.mysqld</string>
<key>ProgramArguments</key>
<array>
<string>/usr/local/mysql/bin/mysqld_safe</string>
<string>--user=mysql</string>
</array>
</dict>
</plist>
提供された他の回答はどれも、MySQLサーバーを自動起動するのに役立ちませんでした。MySQL 5.6ハンドブックの指示に従い、ついに自動起動しました。/Library/LaunchDaemons/com.oracle.oss.mysql.mysqld.plist
次の内容でファイルを作成します。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN"
"http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key> <string>com.oracle.oss.mysql.mysqld</string>
<key>ProcessType</key> <string>Interactive</string>
<key>Disabled</key> <false/>
<key>RunAtLoad</key> <true/>
<key>KeepAlive</key> <true/>
<key>SessionCreate</key> <true/>
<key>LaunchOnlyOnce</key> <false/>
<key>UserName</key> <string>_mysql</string>
<key>GroupName</key> <string>_mysql</string>
<key>ExitTimeOut</key> <integer>600</integer>
<key>Program</key> <string>/usr/local/mysql/bin/mysqld</string>
<key>ProgramArguments</key>
<array>
<string>/usr/local/mysql/bin/mysqld</string>
<string>--user=_mysql</string>
<string>--basedir=/usr/local/mysql</string>
<string>--datadir=/usr/local/mysql/data</string>
<string>--plugin-dir=/usr/local/mysql/lib/plugin</string>
<string>--log-error=/usr/local/mysql/data/mysqld.local.err</string>
<string>--pid-file=/usr/local/mysql/data/mysqld.local.pid</string>
<string>--port=3306</string>
</array>
<key>WorkingDirectory</key> <string>/usr/local/mysql</string>
</dict>
</plist>
そして、ファイルを作成した後、次のコマンドを実行します。
cd /Library/LaunchDaemons
sudo launchctl load -F com.oracle.oss.mysql.mysqld.plist
以前の回答で提案されたplistを使用したとき、システムのユーザーを_mysqlに変更しましたが、MySQL設定ペインの[MySQLサーバーの停止]ボタンが機能しなくなりました。KeepAlive
キーは、プロセスが停止ボタンが押された直後に再び起動するようになります。キーを使用しRunAtLoad
て再起動時に開始するようにしましたが、ペインのボタンは引き続き機能します。
<?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>RunAtLoad</key>
<true/>
<key>Label</key>
<string>com.mysql.mysqld</string>
<key>ProgramArguments</key>
<array>
<string>/usr/local/mysql/bin/mysqld_safe</string>
<string>--user=_mysql</string>
</array>
</dict>
</plist>
次に、他の回答と同様に、次のように実行しました。
sudo launchctl load -w /Library/LaunchDaemons/com.mysql.mysql.plist
これで、MySQLは再起動時に起動しますが、システム環境設定のMySQLペインは引き続き機能します。El Capitan、10.11.2を実行しています