「Dockerで開発環境を作らないヤツは人にあらず」的な空気を感じる昨今ですが、古来から子々孫々と受け継がれし方法を現代に伝承していく所存であります。
というわけで、HomeBrewでmacOSにMySQLを入れていきます。
目次
MySQLをインストールする
パッケージ確認
執筆時点でのリポジトリの内容は以下の通り。複数のバージョンが並んでますね。
$ brew search mysql
==> Formulae
automysqlbackup mysql-client mysql-connector-c++ mysql-utilities mysql@5.7
mysql mysql-cluster mysql-sandbox mysql@5.5 mysqltuner
mysql++ mysql-connector-c mysql-search-replace mysql@5.6
==> Casks
mysql-connector-python mysql-utilities navicat-for-mysql
mysql-shell mysqlworkbench sqlpro-for-mysql
バージョンを指定しなかった場合は8系が入るようになっています。
$ brew info mysql
mysql: stable 8.0.16 (bottled)
Open source relational database management system
https://dev.mysql.com/doc/refman/8.0/en/
(中略)
インストール
brewコマンド一発です。今回は5.7をインストールしました。
$ brew install mysql@5.7
インストールが完了すると、最後のあたりにこの後何をすればよいか案内文が表示されますので、こいつをメモしておきます。
We've installed your MySQL database without a root password. To secure it run:
mysql_secure_installation
MySQL is configured to only allow connections from localhost by default
To connect run:
mysql -uroot
mysql@5.7 is keg-only, which means it was not symlinked into /usr/local,
because this is an alternate version of another formula.
If you need to have mysql@5.7 first in your PATH run:
echo 'export PATH="/usr/local/opt/mysql@5.7/bin:$PATH"' >> ~/.zshrc
For compilers to find mysql@5.7 you may need to set:
export LDFLAGS="-L/usr/local/opt/mysql@5.7/lib"
export CPPFLAGS="-I/usr/local/opt/mysql@5.7/include"
For pkg-config to find mysql@5.7 you may need to set:
export PKG_CONFIG_PATH="/usr/local/opt/mysql@5.7/lib/pkgconfig"
To have launchd start mysql@5.7 now and restart at login:
brew services start mysql@5.7
Or, if you don't want/need a background service you can just run:
/usr/local/opt/mysql@5.7/bin/mysql.server start
パスを通す
お使いの環境に合わせパスを通します。ここではzshを利用しているので.zshrc
を編集しています。bashをお使いの場合は.bashrc
を編集してくださいませ
$ vi ~/.zshrc
export PATH=/usr/local/opt/mysql@5.7/bin/:$PATH
$ source ~/.zshrc
確認
インストールが正常に行われてたのか確認も兼ねてバージョンを出力してみます。無事に5.7.26が入りましたね。
$ mysql --version
mysql Ver 14.14 Distrib 5.7.26, for osx10.14 (x86_64) using EditLine wrapper
サーバを起動
サーバが起動していないとこの後何もできませんので、何はなくとも最初に起動してやります。ここでは案内文の通りbrewの機能を使っています。
$ brew services start mysql@5.7
現在どんなサービスが起動しているかはbrew services list
で確認することが可能です。
$ brew services list
Name Status User Plist
mysql@5.7 started katsube /Users/katsube/Library/LaunchAgents/homebrew.mxcl.mysql@5.7.plist
php stopped
unbound stopped
サーバを停止するときはstop
、再起動はrestart
となります。
$ brew services stop mysql@5.7
Stopping `mysql@5.7`... (might take a while)
==> Successfully stopped `mysql@5.7` (label: homebrew.mxcl.mysql@5.7)
my.cnfを編集する
私の環境だと/usr/local/etc/my.cnf
にいましたので、こいつに必要な設定をしてやります。
$ cat /usr/local/etc/my.cnf
# Default Homebrew MySQL server config
[mysqld]
# Only allow connections from localhost
bind-address = 127.0.0.1
ひとまず文字コードの設定だけしました。
[mysqld]
character-set-server=utf8
設定後は再起動を忘れずに。
$ brew services restart mysql@5.7
Stopping `mysql@5.7`... (might take a while)
==> Successfully stopped `mysql@5.7` (label: homebrew.mxcl.mysql@5.7)
==> Successfully started `mysql@5.7` (label: homebrew.mxcl.mysql@5.7)
セキュリティ設定
今回はローカルの確認用に入れたので実行しませんでしたが、セキュリティの設定も必要であれば対話形式で行うことができます。
$ mysql_secure_installation
以下の様な設定が行なえます。
- パスワードに設定する文字列を厳格化(するプラグインの導入)
- rootのパスワード設定
- rootで外部からのログインを禁止
- anonymousユーザーの削除
- テスト用のデータベースを削除
実際のサービスなどを動かす本番環境等で利用する場合は実行することをおすすめします。パスワード用のプラグインは肌に合わないので入れないことが多いですがw
実際に利用する
ログイン
インストール直後のデフォルト状態だとパスワードは設定されていませんので、rootでそのまま入ることができます。
$ mysql -u root
あとは通常のMySQLとして利用できます。
このブログを応援する
お寄せいただいたお気持ちは全額サーバ代や次の記事を執筆するための原資として活用させていただいております。この記事が参考になった場合などぜひご検討ください。