スポンサーリンク

Dockerコンテナで作成したMySQLに接続する方法【コンソール、MySQL Workbench、VScode】

Docker
スポンサーリンク

今回使用するコンテナ

今回使用するコンテナは下記記事で紹介したLaravel環境用のコンテナを使用したいと思います。すでに環境構築は完了している前提で話を進めていきます。

docker-composeでLaravel6×MySQL×Nginx環境構築
docker-composeでLaravel環境を構築する方法を解説します。WebサーバーにはNginx、データベースにはMySQLを使用しています。Windows、Macどちらにも対応しています。Laravel環境を最短で構築したい方向けの記事になっています。

接続方法

今回は下記の3パターンの接続方法で検証します。

  • コンソール
  • MySQL Workbench
  • VScode プラグイン「MySQL」

コンソールで接続

mysqlをインストールしているdbコンテナにアクセスします。下記コマンドを実行します。コマンドの説明を少しするとexecの後ろについている「db」はコンテナ名です。docker-compose.ymlでここは指定可能ですのでご自身で指定したコンテナ名に合わせて下さい。

$ docker-compose exec db bash
root@a9b2521057ae:/#

その後、mysqlコマンドを実行します。「mysql -u phper -psecret」をコンソールで実行します。MySQLに接続して「show databases;」を実行するとDB一覧が出力されました。

root@a9b2521057ae:/# mysql -u phper -psecret
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 16
Server version: 8.0.22 MySQL Community Server - GPL
Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| laravel_local      |
+--------------------+
2 rows in set (0.00 sec)

ポートフォワディングの設定追加

コンソールで接続する場合は必要なかったですが、これから紹介するMySQL WorkbenchなどのGUIツールを使用したい場合、docker-compose.ymlでポートフォワード設定が必要です。上記で紹介した記事をもとに環境構築している方はdbコンテナのポートフォワード設定がされていないので下記のように修正してください。太字にしているportsの箇所を追加しています。

#docker-compose.yml
version: "3.8"
services:
  app:
    build: ./docker/php
    volumes:
      - ./src:/workspace

  web:
    image: nginx:1.18-alpine
    ports:
      - 8000:80
    volumes:
      - ./src:/workspace
      - ./docker/nginx/default.conf:/etc/nginx/conf.d/default.conf
    working_dir:
      /workspace

  db:
    build: ./docker/mysql
    volumes:
      - db-store:/var/lib/mysql
    ports:
      - 3307:3306

volumes:
  db-store:

これで外部からdbコンテナに接続したい場合、3307ポートで指定すると接続できるようになります。ちなみに3307にしたのは他のサービスと被らないようにしただけなので変更はご自由にどうぞ。

MySQL Workbenchで接続

MySQL WorkbenchとはMySQLをGUIで操作できるソフトウェアです。下記からインストールできます。※Oracleアカウントが必要です。

下記画像と同じように接続情報の設定をします。

  • Connection Name: 「任意の設定名」
  • Hostname: localhost
  • Port: 3307
  • Username: phper
  • Password: secret

  

これで接続完了です。

VScode プラグイン「MySQL」

まずはプラグインをインストールします。Mysqlで検索すると下記画像のプラグインがヒットするのでこれをインストールしてください。

インストールが完了するとサイドバーにDBアイコンが追加されるのでクリックします。その後、画面左上の「+」ボタンをクリックすると下記画像のように接続情報の設定が入力できるようになります。入力後に「Connect」をクリックするとMySQLにVScodeからアクセスできます。

  • Connection Name: 「任意の設定名」
  • Hostname: localhost
  • Port: 3307
  • Username: phper
  • Password: secret

これで接続完了です。ちなみにこのプラグインはMySQL以外も接続できるみたいです。便利ですね。

コメント