[macOS General] Mac に MySQL 5.7 を brew install して自動起動させる
utf8mb4 の設定から brew services まで。
やること。
- MySQL を brew install する。
- my.cnf に utf8mb4 を設定する。
- brew services で自動起動させる。
売り上げランキング: 7,397
Contents
インストール
% brew install mysql
Updating Homebrew...
==> Downloading https://homebrew.bintray.com/bottles/mysql-5.7.17.sierra.bottle.1.tar.gz
######################################################################## 100.0%
==> Pouring mysql-5.7.17.sierra.bottle.1.tar.gz
==> Using the sandbox
==> /usr/local/Cellar/mysql/5.7.17/bin/mysqld --initialize-insecure --user=**** --basedir=/usr/local/Cellar/mysql/5.7.17 --datadi
==> Caveats
We've installed your MySQL database without a root password. To secure it run:
mysql_secure_installation
To connect run:
mysql -uroot
To have launchd start mysql now and restart at login:
brew services start mysql
Or, if you don't want/need a background service you can just run:
mysql.server start
==> Summary
🍺 /usr/local/Cellar/mysql/5.7.17: 321 files, 234.4M
% mysql --version
mysql Ver 14.14 Distrib 5.7.17, for osx10.12 (x86_64) using EditLine wrapper
my.cnf に utf8mb4 を設定する
~/.my.cnf
に絵文字やサロゲートペアが扱えるように日本語の設定をする。
MySQL :: MySQL 5.7 Reference Manual :: 5.2.6 Using Option Files
.my.cnf の作成
my.cnf が読み込まれる場所を調べる。
% mysql --help | grep my.cnf
order of preference, my.cnf, $MYSQL_TCP_PORT,
/etc/my.cnf /etc/mysql/my.cnf /usr/local/etc/my.cnf ~/.my.cnf
my.cnf のひな型が必要な場合、下記で入手する。
% find /usr/local/Cellar/mysql -name "my*.cnf"
/usr/local/Cellar/mysql/5.7.17/support-files/my-default.cnf
% cp /usr/local/Cellar/mysql/5.7.17/support-files/my-default.cnf ~/.my.cnf
utf8mb4 の設定
~/.my.cnf
に設定を加える。
[client]
default-character-set = utf8mb4
[mysql]
default-character-set = utf8mb4
[mysqld]
character-set-server=utf8mb4
collation-server=utf8mb4_general_ci
log_timestamps=SYSTEM
How to support full Unicode in MySQL databases · Mathias Bynens
collation については以下も参考。
default-character-set
を利用すると強制的に特定の文字セットを使用させることができる。
その他 v5.7 の情報
log_timestamps=SYSTEM
など、その他 v5.7 の情報はこちらを参考にする。
起動と設定の確認
初期化
Homebrew で MySQL をインストールした場合、データベース等の関連ファイルは /usr/local/var/mysql
にまとめられる。
Mac OS X El CapitanでMySQLをクリーンインストールする | Crack the Game, Win a Jackpot
初期化が必要であれば mysql_install_db
から mysqld --initialize
に変わったそうなので、これを実行する。
% mysqld --initialize
売り上げランキング: 600
起動と mysql_secure_installation
% mysql.server start
Starting MySQL
. SUCCESS!
セキュリティ設定。
すべて y でパスワードは strong とする。
% mysql_secure_installation
接続文字セットおよび照合順序の確認
MySQL にログインして確認する。
MySQL :: MySQL 5.7 Reference Manual :: 11.1.4 Connection Character Sets and Collations
% mysql.server restart
Shutting down MySQL
. SUCCESS!
Starting MySQL
. SUCCESS!
% mysql -u root -p
mysql> SHOW VARIABLES WHERE Variable_name LIKE 'character\_set\_%' OR Variable_name LIKE 'collation%' OR Variable_name LIKE 'log\_timestamps%';
+--------------------------+--------------------+
| Variable_name | Value |
+--------------------------+--------------------+
| character_set_client | utf8mb4 |
| character_set_connection | utf8mb4 |
| character_set_database | utf8mb4 |
| character_set_filesystem | binary |
| character_set_results | utf8mb4 |
| character_set_server | utf8mb4 |
| character_set_system | utf8 |
| collation_connection | utf8mb4_general_ci |
| collation_database | utf8mb4_general_ci |
| collation_server | utf8mb4_general_ci |
| log_timestamps | SYSTEM |
+--------------------------+--------------------+
11 rows in set (0.00 sec)
意図したとおりに設定できたようなので、一度停止する。
% mysql.server stop
Shutting down MySQL
.. SUCCESS!
自動起動の設定
macOS では伝統的に launchd と言うデーモンにログイン時に起動させるサービスを登録する。
しかし brew install
すると brew services
が利用できるので、こちらで設定する。
% brew services list
Name Status User Plist
mysql stopped
php71 stopped
% brew services start mysql
==> Successfully started `mysql` (label: homebrew.mxcl.mysql)
% brew services list
Name Status User Plist
mysql started **** /Users/****/Library/LaunchAgents/homebrew.mxcl.mysql.plist
php71 stopped
らくちんですね。