Docker

【Docker×MySQL】Docker環境下でMySQLコンテナに接続する方法(テーブル情報を確認)

Docker

 

今回はDocker環境下でMySQLコンテナに接続し、テーブル情報を確認する方法について解説したいと思います。Docker環境下でもテーブルデータを確認したい機会は必ず出てくるため、ぜひこの手順を覚えておきましょう。

SequelProで確認する方法もありますが、今回はターミナル上で確認する方法のみ解説します。

【簡略版】テーブル情報を確認する方法

以下の手順でMySQLコンテナに接続し、テーブル情報を確認することができます。

  1. docker ps
  2. docker exec -it MySQLのコンテナ名 bash
  3. mysql -u root -p
  4. mysql> show databases;
  5. mysql> use myapp_development;
  6. mysql> show tables;
  7. mysql> select * from テーブル名;

より具体的に

先ほどの手順を具体的に見ていきましょう。

まずはdocker psコマンドでMySQLのコンテナを確認します。

% docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED              STATUS              PORTS                               NAMES
8c0d9a39d523        test_app            "rails test test/int…"   About a minute ago   Up About a minute   3000/tcp, 3035/tcp                  test_app_run_cee0483ae56b
4254fa5eab39        mysql:5             "docker-entrypoint.s…"   5 days ago           Up 6 hours          0.0.0.0:3306->3306/tcp, 33060/tcp   test_db_1
上記の場合、使用するコンテナ名は「test_db_1」になります。

 

続いて以下のコマンドでMySQLコンテナに接続しましょう。

% docker exec -it MySQLのコンテナ名 bash
今回の場合は「docker exec -it test_db_1 bash」となります。

 

次にMySQLにアクセスします。

passwordを求められますが、設定していない場合はそのままEnterキーを押してしまって問題ありません。

root@000000000:/# mysql -u root -p
Enter password:

 

MySQLにアクセスできたら、存在するデータベースを確認します。

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| myapp_development  |
| myapp_test         |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
5 rows in set (0.10 sec)

 

その中から使用したい(中身をみたい)データベースを選択します。

mysql> use myapp_development;

 

さらにテーブルを確認します。

mysql> show tables;
+-----------------------------+
| Tables_in_myapp_development |
+-----------------------------+
| active_storage_attachments  |
| active_storage_blobs        |
| ar_internal_metadata        |
| test                        |
| schema_migrations           |
| users                       |
+-----------------------------+
6 rows in set (0.00 sec)

 

最後に、テーブルを選択することでそこに保存されているデータを見ることができます。

mysql> select * from users;
+----+-------+----------------+--------------------------------------------------------------+----------------------------+----------------------------+--------------+---------------+
| id | name  | email          | password_digest                                              | created_at                 | updated_at                 | reset_digest | reset_sent_at |
+----+-------+----------------+--------------------------------------------------------------+----------------------------+----------------------------+--------------+---------------+
|  1 | テスト | 123@gmail.com  | $2a$12$9o6zvuNS8bKYGRI/xIBEpelGZOp0wwFADu.TLm2y0lTK9qt8W/bwy | 2021-01-06 07:08:49.771299 | 2021-01-06 07:08:49.771299 | NULL         | NULL          |
|  2 | あああ | abc@gmail.com  | $2a$12$RsFA2XWjEzWuo8uC4hmE0.rCOm3cAL6RGqbRtm/ysFAiRzpho1P4G | 2021-01-07 07:19:47.506578 | 2021-01-07 07:19:47.506578 | NULL         | NULL          |
+----+-------+----------------+--------------------------------------------------------------+----------------------------+----------------------------+--------------+---------------+
2 rows in set (0.00 sec)

まとめ

再度になりますが、以下の手順を行うことでDocker環境下でMySQLコンテナに接続し、テーブルデータを確認することができます。

  • docker ps
  • docker exec -it MySQLのコンテナ名 bash
  • mysql -u root -p
  • mysql> show databases;
  • mysql> use myapp_development;
  • mysql> show tables;
  • mysql> select * from テーブル名;

参考

 

 

今回はDocker環境下でMySQLコンテナに接続し、テーブル情報を確認する方法について解説しました。そこまで難しい作業ではないため、ぜひ使えるようにしておきましょう。