Mac OS XでMySQLを自動起動させる方法
MySQL Serverを動かす
訳合って、ローカル環境にインストールしてあったMySQLを久しぶりに立ち上げる時がやってきました。
とりあえず、ローカル環境でこのコマンドを叩いてみると、
$ mysql -uroot -p ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
よく見覚えのあるエラーメッセージが出てきました。
すかさず、
$ mysql.server start
Starting MySQL
. SUCCESS!
このコマンドを叩くと
$ mysql -uroot -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 1 Server version: 5.6.21 Homebrew Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql>
無事、対話モードに入れました。
しかし、毎回忘れた頃にこの現象に遭遇した状態で、
都度ぐぐって対応するのはやる気をそがれてしまいます。
そこで、もう少し楽にMySQLを自動的に起動する方法を探してみようと思います。
ドキュメントを読む
まず、MySQLのドキュメントを確認します。
すると、MySQL を自動的に起動および停止するという章に以下の記述を見付けました。
OS X では、システム起動時の MySQL の自動起動を有効にする別個の MySQL Startup Item パッケージをインストールします。Startup Item は mysql.server を実行することでサーバーを起動します。詳細はセクション2.4.4「MySQL 起動アイテムのインストール」を参照してください。MySQL Preference Pane でも、System Preferences を介して MySQL の起動と停止を制御できます。セクション2.4.5「MySQL Preference Pane のインストールと使用」を参照してください。
とい記述を発見しました。
丁寧な解説もあったのでこれで出来ると考えましたが、
$ mysql.server start
コマンドを叩くだけでも面倒臭い私は、もっと楽出来ないかと考えました。
launchdを使う
調べてみると、post-installメッセージにMySQLの起動の設定方法が書いてあるという記述があったので、その記述を元に下記コマンドを実行してlaunchdで動かしてみました。
$ ln -fs /usr/local/opt/mysql/homebrew.mxcl.mysql.plist ~/Library/LaunchAgents/
こちらのコマンドですぐに起動させ、
$ launchctl load ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
実際に動いているかプロセスを確認してみます。
$ ps ax | grep mysql 21099 s000 S 0:00.02 /bin/sh /usr/local/Cellar/mysql/5.6.21/bin/mysqld_safe --datadir=/usr/local/var/mysql --pid-file=/usr/local/var/mysql/fl1-122-133-119-176.tky.mesh.ad.jp.pid 21197 s000 S 0:00.95 /usr/local/Cellar/mysql/5.6.21/bin/mysqld --basedir=/usr/local/Cellar/mysql/5.6.21 --datadir=/usr/local/var/mysql --plugin-dir=/usr/local/Cellar/mysql/5.6.21/lib/plugin --log-error=/usr/local/var/mysql/fl1-122-133-119-176.tky.mesh.ad.jp.err --pid-file=/usr/local/var/mysql/fl1-122-133-119-176.tky.mesh.ad.jp.pid 21786 s000 S+ 0:00.00 grep mysql
最後に、実際に動くかをもう一度確認してみます。
$ mysql -uroot -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 55 Server version: 5.6.21 Homebrew Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql>
無事、起動することが出来ました。
※参考
MySQL :: MySQL 5.6 リファレンスマニュアル :: 2.10.1.2 MySQL を自動的に起動および停止する
HomebrewでインストールしたMySQLを自動起動させる(情報が古い) - ponkiti's blog
Mac(OS X)ではcronじゃなくてlaunchdでやる - Furudateのブログ
HomebrewでインストールしたMySQL,MongoDBを自動起動させる - Qiita