MySQL の開発環境を用意する方法 (M1 Mac)
はじめに
こんにちは、クラウドエースの許です。
今回はローカル環境に MySQL 環境を構築するための方法を紹介します。
ただし、M1 Mac (もしくは別の Apple シリコン搭載の Mac)での構築を前提となりますので、他の環境は多少違った構築方法になると思います。
準備
MySQL サーバーと接続できることを確認するために、GUI ツールの MySQL Workbench をインストールします。
CUI に慣れている方であれば、インストールはスキップしても大丈夫です。
ここからインストール
M1 Mac のアーキテクチャは ARM なので ARM 版をインストールしてください。
今回の解説について
今回はローカルに MySQL をインストールする方法と、Docker を使って MySQL 環境を構築する方法の2通りを解説します。
ローカルに MySQL をインストールする方法
MySQL のインストール
MySQL のインストールは Homebrew で行います。
-
以下のコマンドを実行します。
このコマンドを実行するだけで、インストールは完了します。brew install mysql
-
以下のコマンドを叩いて、 MySQL Server を自動的に起動するように設定します。
おそらくずっと起動していても、基本的には支障が出ないはずなので、この設定をしておきます。brew services start mysql
もし、邪魔しそうであればこのステップをスキップするか、プロセスをキルしてください。(ps コマンドと kill コマンドを使います。)
自動起動を無効にしたい場合は、以下のコマンドを実行します。
brew services stop mysql
MySQL の諸々を設定する
以下のコマンドを実行して、MySQL の設定を行います。
(執筆主は環境構築の数ヶ月後に記事を執筆しているため、内容自体を生成 AI に出力してもらっています。実際の内容は異なる可能性があります。)
mysql_secure_installation
このコマンドを実行すると、以下のような質問が出てきます。
Securing the MySQL server deployment.
//初期のrootパスワード(後続のパスワード強度チェックを適用したい場合は空白のままEnter)
Enter password for user root:
VALIDATE PASSWORD COMPONENT can be used...
// パスワード強度チェックを有効にするか(yが推奨)
Press y|Y for Yes, any other key for No: y
// 強度チェックが入った状態でのrootパスワード設定
Please set the password for root here.
New password:
Re-enter new password:
//匿名ユーザの削除可否(yが推奨)
Remove anonymous users? (Press y|Y for Yes, any other key for No) : y
// rootのリモート接続の許可を禁止するか?(yが推奨)
Disallow root login remotely? (Press y|Y for Yes, any other key for No) : y
// 初期作成されるtestデータベースとその権限を削除しますか?(yが推奨)
Remove test database and access to it? (Press y|Y for Yes, any other key for No) : y
// 今回の設定を即時反映させるか?(yが推奨)(FLUSH PRIVILEGESと同様の効果)
Reload privilege tables now? (Press y|Y for Yes, any other key for No) : y
All done!
ここまでで MySQL のインストールと初期設定は完了です。
続いては、GUI ツールとの接続を行い、SQL クエリを利用しやすくしていきたいと思います
接続を確認して、Workbench でデータベースを作成する
- まず、きちんと MySQL サーバと接続できるか確認します。パスワードを入力して
mysql -u root -p
mysql>
と出ていれば接続できています - 念の為、適当なクエリを実行してみましょう。最後にセミコロンが必須な点には注意してください。
SHOW DATABASES;
- MySQL 環境から一度退出します
quit
- MySQL Workbench を開き、+アイコンをクリックして新しい接続を作成します。
- 画像のように記入して、[Test Connection] をクリックします。
成功したら OK をクリックします。(パスワードを[Store in Keychain]から入力してください)
- 接続が成功すると、画像のような表示に変化します。
作成した接続をクリックして、DB に接続します。
- 作成した接続をクリックして、クエリコンソールを開きます。
- クエリコンソールを開いて、新しくデータベースを作成します。(雷のアイコンをクリックすると実行できます)
CREATE DATABASE demo;
- 作成されているかどうかを確認します。
SHOW DATABASES;
demo
というデータベースが作成されていれば成功です。 - 再度クエリコンソールを開き、以下のクエリを実行すれば DB 内にテーブルが作成できます。
USE demo; create table demo_table ( id int primary key, name varchar(50) );
正常に作成できていることが確認できれば OK です。
Docker を使って MySQL 環境を構築する方法
Docker でコンテナをホスト OS に作成し、ホスト OS とコンテナを接続します。
この手順では、コンテナ上で起動した MySQL にホスト OS からアクセスできるようにしているため、ローカルに MySQL をインストールしたときと同じ感覚で利用できます。
MySQL の Docker イメージを取得する
Docker を使ったことがあるならお馴染み、Docker Hub から MySQL の公式イメージを取得します。
基本的にこだわりがなければ latest を指定しておけば問題ないです。
docker pull mysql:latest
コンテナを起動して MySQL サーバを立ち上げる
コンテナを起動する方法はいくつかありますが、今回は docker-compose
を使って起動する方法を紹介します。
-
compose.yaml
ファイルを以下の内容で作成します。version: '3.8' services: mysql: image: mysql:latest container_name: mysql_server # コンテナ名を指定 environment: MYSQL_ROOT_PASSWORD: {root用のパスワード} # rootのパスワードを設定 MYSQL_DATABASE: demo # コンテナ起動時に作成するデータベース ports: - "3306:3306" # ホストのポート3306をコンテナのポート3306にマッピング volumes: - mysql_data:/var/lib/mysql # ホストOSにデータを保存し、コンテナを再起動してもデータが消えないようにする volumes: mysql_data:
-
作成した
compose.yaml
ファイルがあるディレクトリで以下のコマンドを実行します。docker-compose up -d
-
コンテナがきちんと起動しているか確認します。
docker ps
自分が命名したコンテナ名が表示されていれば成功です。
接続を確認する
接続方法自体はローカルに MySQL をインストールした時とほぼ同じです。
序盤の手順のみ少し変わります。
-
コンテナ内に入り、SQL サーバとして起動しているか確認します。
docker exec -it <コンテナ名またはID> bash
-
MySQL サーバ内に入る (ログイン時にパスワードを求められるので、控えていたパスワードを入力してください)
mysql -u root -p
-
パスワードを入力して
mysql>
と出ていれば接続できています。 -
適当なクエリを実行してみましょう。
SHOW DATABASES;
最後にセミコロンが必須な点には注意してください。
接続できていることが確認できれば、コンテナ環境から退出します。
これ以降はホスト OS に MySQL をインストールした時と同じ手順になります。
-
MySQL Workbench を開き、+アイコンをクリックして新しい接続を作成します。
-
画像のように記入して、[Test Connection] をクリックします。
成功したら OK をクリックします。(パスワードを[Store in Keychain]から入力することができます。)
-
接続が成功すると、画像のような表示に変化します。
-
作成した接続をクリックして、DB に接続します。
-
実際にクエリが実行できるか確認します。
SHOW DATABASES;
画像のような表示が出ていれば成功です。
-
再度クエリコンソールを開き、以下のクエリを実行すれば DB 内にテーブルが作成できます。
USE demo; CREATE TABLE demo ( id INT PRIMARY KEY, name VARCHAR(50) );
正常に作成できていることが確認できればOKです。
まとめ
今回は M1 Mac 前提での MySQL の開発環境を構築する方法を紹介しました。
Docker を使う方法と、ローカルにインストールする方法の2通りを紹介しましたが、どちらも MySQL Workbench で接続できることを確認しました。
個人的な好みとしては Docker を使う方法になります。
Docker を使うと気軽に環境を作ったり、削除したりできるので、開発環境の操作がとっても楽です。
ぜひ、皆さんのお手元で MySQL 環境を構築してみてください。
Discussion