2020年4月のDBスペシャリストを受験することにしました。
データベーススペシャリスト試験(DB) ~ ビッグデータ時代に求められる、データ志向の担い手 ~
というわけで今回は勉強・復習のために使うローカル環境作成について書いていこうと思います。
前提
MySQL Workbench、docker-composeはすでにインストールされているということを前提とします。
作る環境
- MySQL: 5.7
docker-compose
Dockerfileでもいいのですが、ここは使い慣れているdocker-compose.ymlで設定を書いていこうと思います。
version: '3.7'
services:
db:
image: mysql:5.7
environment:
MYSQL_DATABASE: siken
MYSQL_USER: root
MYSQL_ROOT_PASSWORD:任意のパスワード
tty: true
ports:
- 33306:3306
command: mysqld --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci --explicit_defaults_for_timestamp=true
とりあえず上記でいいと思います。
ここでポイントはportsの設定です。
この記事を読んでいる方はエンジニアの方が多いと推測します。エンジニアの方はだいたい自分のPCでも開発を行っていて、ローカル(コンテナではなくPC自体)に3306ポートでアクセスするDBがあることが想定されます。
そこで、このコンテナの環境には33306というポートでアクセスするようにすることですでに存在するであろうローカルのDBとの区別をしています。すでに33306というポートを使っている場合は他のポート番号に変えて使用してください。
コンテナ起動
docker-compose.ymlができたらあとは下記のコマンドを打つだけでdbのコンテナが起動します。
$ docker-compose up
コンテナ起動確認
dockerのpsコマンドを打ってコンテナの起動確認を行います。
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
6a1e08bda9a9 mysql:5.7 "docker-entrypoint.s…" 25 hours ago Up 4 seconds 33060/tcp, 0.0.0.0:33306->3306/tcp database_siken_db_1
MySQL Workbenchでアクセス
Workbenchのコネクション設定を下の画像のようにし、パスワードを入力してください。
これでOKを押下すると接続できると思います。
これで色々SQL文を試すことができる環境ができました。
最後までお読みいただきありがとうございました。