macOS Sierraで、Homebrew経由でMySQLをインストール&使用開始できる状態にする

Macにインストール

$ brew install mysql

MySQLの初期設定

$ mysqld --initialize --explicit_defaults_for_timestamp

で初期設定。

--initialize specified but the data directory has files in it. Aborting

というエラーメッセージが出た場合は、${Homebrewのインストールディレクトリ}/var/mysqlディレクトリが存在しているから。存在していれば削除して初期設定をやり直す。 成功したら

A temporary password is generated for root@localhost: XXXXXXXX

などと仮のrootパスワードが出てくるので忘れずにメモ。

my.cnfでsockファイルの場所を指定

$ mysql --help | grep my.cnf

でmy.cnfの場所を検索。

                      order of preference, my.cnf, $MYSQL_TCP_PORT,
/etc/my.cnf /etc/mysql/my.cnf ${Homebrewのインストールディレクトリ}/etc/my.cnf ~/.my.cnf 

などと出てくるはず。好みの場所にmy.cnfファイルを作成。 中身は

[client]
socket=/tmp/mysql/mysql.sock
[mysqld]
socket=/tmp/mysql/mysql.sock

とする。

Sockファイル作成

$ cd /tmp
$ sudo mkdir mysql
$ cd mysql
$ sudo touch mysql.sock

権限設定

${Homebrewのインストールディレクトリ}/var/mysql

/tmp/mysql

${好みの場所に書いたmy.cnfのディレクトリ}/my.cnf

/tmp/mysql/mysql.sock

4つのディレクトリ・ファイルの権限を整える。

$ cd /tmp/mysql
$ sudo chown -R ${Macのユーザ名。whoamiで出るもの。}:wheel mysql/
$ cd ${Homebrewのインストールディレクトリ}/var
$ sudo chown -R ${Macのユーザ名。whoamiで出るもの。}:wheel mysql/
$ cd ${好みの場所に書いたmy.cnfのディレクトリ}
$ sudo chown ${Macのユーザ名。whoamiで出るもの。}:wheel my.cnf
$ cd /tmp/mysql
$ sudo chown ${Macのユーザ名。whoamiで出るもの。}:wheel mysql.sock

MySQLのサーバを起動

$ mysql.server start

とやって、

Sucess!

と出れば成功。

MySQLのクライアントを起動

$ mysql -u root -p

で上記でメモした仮パスワードを入れてログイン。 ログインできたら成功。 ログイン後は、仮パスワードを変更しないと何も操作できないので、

mysql> set password for root@localhost=password('パスワード');

で、rootのパスワードを更新する。

セキュア設定

$ mysql_secure_installation

を実行するだけ。