読者です 読者をやめる 読者になる 読者になる

【Mac】HomebrewでMySQLのインストールと起動スクリプトの設定

MySQL
スポンサーリンク

HomebrewでMySQLをインストールする際の手順と起動スクリプトの設定についてです。

事前準備

Homebrewのインストールが必要です。


 Homebrewのインストールと設定 - TASK NOTES

MySQLのインストール

インストールコマンドを実行します。最新版を入れたい場合は先にbrew updateを実行して下さい。

$ brew install mysql
==> Downloading https://downloads.sf.net/project/machomebrew/Bottles/mysql-5.6.22.yosemite.bottle.tar.gz
######################################################################## 100.0%
==> Pouring mysql-5.6.22.yosemite.bottle.tar.gz
==> Caveats
A "/etc/my.cnf" from another install may interfere with a Homebrew-built
server starting up correctly.

To connect:
    mysql -uroot

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
==> /usr/local/Cellar/mysql/5.6.22/bin/mysql_install_db --verbose --user=tasukujp --basedir=/usr/local/Cellar/mysql/5.6.22 --datadir=/usr/local/var/my
==> Summary
🍺  /usr/local/Cellar/mysql/5.6.22: 9666 files, 339M

インストールされました。

$ mysql --version
mysql  Ver 14.14 Distrib 5.6.22, for osx10.10 (x86_64) using  EditLine wrapper

MySQLに接続する

表示された内容に従ってMySQLを起動します。

$ mysql.server start
Starting MySQL
. SUCCESS!

起動できたら接続します。

$ mysql -uroot
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.6.22 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> exitで接続を切ります。

mysql> select version();
+-----------+
| version() |
+-----------+
| 5.6.22    |
+-----------+
1 row in set (0.00 sec)

mysql> exit
Bye

また、起動する前に接続しようとすると次のエラーが出ます。

$ mysql -uroot
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)

MySQLを停止します。

$ mysql.server stop
Shutting down MySQL
. SUCCESS! 

起動スクリプトの設定

OS起動時にMySQLを自動で起動させるために起動スクリプトのリンクを~/Library/LaunchAgentsに作成します。

$ ln -sfv /usr/local/opt/mysql/*.plist ~/Library/LaunchAgents
/Users/tasukujp/Library/LaunchAgents/homebrew.mxcl.mysql.plist -> /usr/local/opt/mysql/homebrew.mxcl.mysql.plist

実行してみます。

$ launchctl load ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist

起動されました。これで毎回mysql.server startとしなくても大丈夫です。

$ mysql.server status
 SUCCESS! MySQL running (20035)

ついでに起動スクリプトの設定を変更しておきます。先程作成したファイルを開いて下さい。

$ open ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist 

デフォルトでは KeepAlive の項目が YES になってますが、この場合 MySQL が落ちた時に自動で起動されます。そのためmysql.server stopとした場合でも停止できませんので NO に変えておきます。

f:id:tasukujp:20150125180854p:plain

変更したら起動スクリプトの再読み込みをします。

$ launchctl unload ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
$ launchctl load ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist

停止出来るようになりました。

$ mysql.server stop
Shutting down MySQL
. SUCCESS! 
$ mysql.server status
 ERROR! MySQL is not running