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
Code language: JavaScript (javascript)

とりあえず上記でいいと思います。

ここでポイントは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
Code language: JavaScript (javascript)

MySQL Workbenchでアクセス

Workbenchのコネクション設定を下の画像のようにし、パスワードを入力してください。

これでOKを押下すると接続できると思います。

これで色々SQL文を試すことができる環境ができました。

最後までお読みいただきありがとうございました。

By user