HomebrewでMySQLをインストールすると、post_installメッセージとして
To have launchd start mysql at login: ln -sfv /usr/local/opt/mysql/*.plist ~/Library/LaunchAgents Then to load mysql now: launchctl load ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist Or, if you don't want/need launchctl, you can just run: mysql.server start
このように表示されます。ここには、launchdというOS Xの仕組みを使ってMySQLを自動的に起動するやり方と、手動で毎回起動するやり方が書いてあります。
launchdは、OS Xの根幹を為す仕組みのひとつで、特にコマンドラインからはlaunchctl
コマンドを使ってやり取りします。Property List形式のファイルを特定のディレクトリ、この場合は~/Library/LaunchAgentsディレクトリに置いて(ソフトリンクして)、これをlaunchctl load
することで、launchdを使ったMySQLの自動起動ができるようになります。
さて、ではこの自動起動をやめたくなったときどうしたらよいかというと、launchctl unload
してソフトリンクを消したら元通りになります。launchctl
コマンドに十分精通していればこれくらい簡単ですし、いま起動している一覧なども得ることができます。他にもman launchctl
すると大変詳しい説明を読むことができます。
brew services
ここまで読むと、OS Xは非常に優れたOSで、launchdの柔軟さやlaunchctl
コマンドの使いやすいインターフェースにただ感謝、という気持ちになったことと思います。
そうは言っても、他人のMacパソコンに親切でMySQLの自動設定をしてあげるのには躊躇われるものがあります。相手がlaunchdに詳しければよいのですが、launchctl unload
などを知らなければ二度と元に戻すことができないでしょう。
そこで今日はbrew services
コマンドを紹介します。このコマンドでMySQLを自動起動するには
brew services start mysql
とするだけです。いま自動起動の設定をしているもの一覧は
brew services list
自動起動を止めたければ
brew services stop mysql
これだけのコマンドで先ほどのlaunchctl
と同等のことが行えます。この方法ならlaunchdの柔軟な仕組みについてあまり明るくなくてもMySQLの自動起動ができて便利です。またhomebrew/versionsのmysql55
などを使っていたとしても、brew services start mysql55
とすればよいようです。
この方法であればlaunchctl
でなんの設定をしたかを忘れることもなく、リラックスしてMacパソコンを利用することができるので安心です。
Homebrewはこのように便利な仕組みを(こっそり)用意してくれていて侮れないものがありますね。こちらからは以上です。