MacPorts版MySQLを自動起動する
以下のサイトを見る限り、Mac OS X以降では、launchdを使って自動起動するのが流儀らしいみたいです。
具体的には、/Library/LaunchDaemons/ 以下にplistファイルを作成し、launchctlコマンドでplistファイルをロードします。
$ sudo launchctl load -w /Library/LaunchDaemons/org.macports.mysql5.plist
が、残念ながらMacPortsでインストール後には、該当のplistファイルが存在しなかったので、手動でplistファイルを用意します。
念のため /Library/LaunchDaemons/ 以下に配置されているplistファイルも確認してみます。ちょうどMacPortsにてインストールしたApache2用のplistファイルがあったので参考にします。
$ ls /Library/LaunchDaemons/ | egrep -e "apache2" lrwxr-xr-x 1 root wheel 76 12 1 00:36 org.macports.apache2.plist@ -> /opt/local/etc/LaunchDaemons/org.macports.apache2/org.macports.apache2.plist
/opt/local/etc/LaunchDaemons/ 以下にplistファイルを配置しているので、これも流儀にしたがっておきます。
嬉しいことにMySQL用のplistファイルを公開しているサイトがあるようなので、それをダウンロードして使います。
$ sudo mkdir -p /opt/local/etc/LaunchDaemons/org.macports.mysql5 $ cd /opt/local/etc/LaunchDaemons/org.macports.mysql5 $ sudo curl -O http://robwilkerson.org/_resources/hotlink/blog/mysql5.wrapper $ sudo curl -O http://robwilkerson.org/_resources/hotlink/blog/org.macports.mysql5.plist $ sudo chown root:wheel /opt/local/etc/LaunchDaemons/org.macports.mysql5/* $ sudo chmod 755 /opt/local/etc/LaunchDaemons/org.macports.mysql5/mysql5.wrapper $ sudo chmod 644 /opt/local/etc/LaunchDaemons/org.macports.mysql5/org.macports.mysql5.plist $ sudo ln -s /opt/local/etc/LaunchDaemons/org.macports.mysql5/org.macports.mysql5.plist /Library/LaunchDaemons/org.macports.mysql5.plist
その後、マシンをリブートして自動起動していることを確認します。
$ ps ax | grep mysql 51 ?? Ss 0:00.02 /opt/local/bin/daemondo --label=mysql5 --start-cmd /opt/local/etc/LaunchDaemons/org.macports.mysql5/mysql5.wrapper start ; --stop-cmd /opt/local/etc/LaunchDaemons/org.macports.mysql5/mysql5.wrapper stop ; --restart-cmd /opt/local/etc/LaunchDaemons/org.macports.mysql5/mysql5.wrapper restart ; --pid=none 67 ?? S 0:00.03 /bin/sh /opt/local/lib/mysql5/bin/mysqld_safe --datadir=/opt/local/var/db/mysql5 --pid-file=/opt/local/var/db/mysql5/localhost.pid 165 ?? S 0:01.67 /opt/local/libexec/mysqld --basedir=/opt/local --datadir=/opt/local/var/db/mysql5 --user=_mysql --log-error=/opt/local/var/db/mysql5/localhost.err --pid-file=/opt/local/var/db/mysql5/localhost.pid --socket=/opt/local/var/run/mysql5/mysqld.sock --port=3306 573 s000 U+ 0:00.00 grep mysql