アルアカ - Arcadia Academia

Arcadia Academiaは「エンジニアリングを楽しむ」を合言葉に日本のデジタル競争力を高めることをミッションとするテックコミュニティです。

Dockerで構築した開発環境のDBにSQLクライアントで接続する方法

Featured image of the post

開発を進めていると、「Dockerで立ち上げたデータベースに手元のSQLクライアントから直接アクセスしたい」という場面、よくありますよね。GUIでテーブル構成を確認したり、サクッとクエリを試したりできると非常に便利です。

今回は、Docker環境で動かしているDBへ、外部のSQLクライアント(例:DBeaverやTablePlus)を使って接続する方法を分かりやすく解説していきます。


[目次を開く]

1. Docker環境の前提を確認する

まずは、現在のDocker環境を把握しましょう。確認すべきポイントは以下の通りです。

  • 使用しているDBの種類(例:MySQL、PostgreSQLなど)
  • コンテナ名
  • ポート番号(ホスト側に公開されているか)
  • ユーザー名とパスワード

Docker Composeを使っている場合は、docker-compose.ymlファイルを確認しましょう。例えば、MySQLを使用している場合、以下のような設定になっているはずです。

services:
  db:
    image: mysql:8.0
    ports:
      - "3306:3306"
    environment:
      MYSQL_ROOT_PASSWORD: password
      MYSQL_DATABASE: sample_db
      MYSQL_USER: user
      MYSQL_PASSWORD: userpass

ここでは、ホスト側のポート3306がコンテナのMySQLにマッピングされています。

この「ポートの公開設定」がないと、ホストマシンから接続できないので注意しましょう。

2. SQLクライアントから接続するための情報を整理

接続時に必要な情報をまとめます。

項目 内容
ホスト名 localhost または 127.0.0.1
ポート番号 3306(例)
ユーザー名 user
パスワード userpass
データベース名 sample_db

これらをメモしておきましょう。

3. SQLクライアントを設定する

ここでは、DBeaverを例に設定手順を説明しますが、TablePlusやSequel Aceなどでも基本は同じです。

  1. SQLクライアントを起動
  2. 新しい接続(New Connection)を作成
  3. データベースタイプを選択(MySQL、PostgreSQLなど)
  4. 以下を入力
    • Host:127.0.0.1
    • Port:3306
    • Database:sample_db
    • Username:user
    • Password:userpass
  5. テスト接続を実行して、問題なければ保存
Image in a image block

これで、Docker内で動いているDBにGUIで接続できるようになります!

※DBeaverの場合ドライバのプロパティタブから「allowPublicKeyRetrieval」をtrueに変更する必要があります。

4. よくある接続エラーと対処法

ポートが開いていない

docker-compose.ymlでポートフォワーディングが正しく設定されているか確認しましょう。

ファイアウォールやセキュリティソフト

ローカル環境のファイアウォールやセキュリティ設定によって、ポート接続がブロックされることがあります。必要に応じて許可設定を行いましょう。

コンテナが起動していない

接続先のコンテナが動いているか、docker psコマンドで確認しましょう。

まとめ

Docker上に構築した開発用データベースも、ちょっと設定を確認するだけで手軽にSQLクライアントから接続できるようになります。

GUIツールを活用することで、データベース操作の生産性が一段と向上しますので、ぜひ試してみてください!

プログラミング学習でお悩みですか?

現役エンジニアがあなたの学習をマンツーマンでサポートします。

  • 学習の進め方がわからない
  • ポートフォリオの作り方を知りたい
  • 現場で使える技術を学びたい
まずは30分の無料相談

相談は完全無料・オンラインで気軽に

あなたを爆速で成長させるメンタリングプログラムはこちら

メンタープログラムバナー

プログラミングを学ぶならテックアカデミー

テックアカデミー
無料相談はこちら