質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Django

DjangoはPythonで書かれた、オープンソースウェブアプリケーションのフレームワークです。複雑なデータベースを扱うウェブサイトを開発する際に必要な労力を減らす為にデザインされました。

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

PostgreSQL

PostgreSQLはオープンソースのオブジェクトリレーショナルデータベース管理システムです。 Oracle Databaseで使われるPL/SQLを参考に実装されたビルトイン言語で、Windows、 Mac、Linux、UNIX、MSなどいくつものプラットフォームに対応しています。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

Q&A

解決済

1回答

3171閲覧

SQLクライアントからDocker内のDBに接続する設定について

fukazume

総合スコア78

Django

DjangoはPythonで書かれた、オープンソースウェブアプリケーションのフレームワークです。複雑なデータベースを扱うウェブサイトを開発する際に必要な労力を減らす為にデザインされました。

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

PostgreSQL

PostgreSQLはオープンソースのオブジェクトリレーショナルデータベース管理システムです。 Oracle Databaseで使われるPL/SQLを参考に実装されたビルトイン言語で、Windows、 Mac、Linux、UNIX、MSなどいくつものプラットフォームに対応しています。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

0グッド

0クリップ

投稿2020/10/02 02:00

編集2020/10/02 02:22

##■質問
SQLクライアント(HeidiSQL)とWindowsコマンドプロンプトとで、ローカルにある同じDockerのPostgreSQL dbコンテナ(127.0.0.1:5433)にアクセスしたつもりなのですが、表示されるDBやテーブルの結果が違います。(画像赤枠部参照)どういう設定をすればSQLクライアントでも正しく同じdbコンテナに接続できるでしょうか?

コマンドプロンプトで確認できる一覧表示が実態で、SQLクライアントで表示される一覧がどこか意図していない所を見ているように見えます。

同じものを見ているつもりでも接続設定にミスがあるのだと予想しますが、その設定ミスがどこなのか、思いつく範囲を見直してもわかりませんでした。

説明不足な点などは適宜追記してまいりますので、どうぞよろしくお願い申し上げます。

###SQLクライアントの設定と一覧表示
イメージ説明
イメージ説明

###コマンドプロンプトでの確認内容

commandprompt

1 2# ポート5433の使用状況 3>netstat -ano | find ":5433" 4 TCP 0.0.0.0:5433 0.0.0.0:0 LISTENING 2216 5 TCP 127.0.0.1:5433 127.0.0.1:65269 ESTABLISHED 2216 6 TCP 127.0.0.1:65269 127.0.0.1:5433 ESTABLISHED 13992 7 TCP [::]:5433 [::]:0 LISTENING 2216 8 TCP [::1]:5433 [::]:0 LISTENING 13984 9 10# Dockerのdbコンテナ内に入る 11>docker exec -it db bash 12root@da47551ce7a0:/# psql -Upostgres 13psql (11.9 (Debian 11.9-1.pgdg90+1)) 14Type "help" for help. 15 16postgres=# \c db_data 17You are now connected to database "db_data" as user "postgres". 18db_data=# \dt 19 List of relations 20 Schema | Name | Type | Owner 21--------+----------------------------+-------+---------- 22 public | auth_group | table | postgres 23 public | auth_group_permissions | table | postgres 24 public | auth_permission | table | postgres 25 public | auth_user | table | postgres 26 public | auth_user_groups | table | postgres 27 public | auth_user_user_permissions | table | postgres 28 public | django_admin_log | table | postgres 29 public | django_content_type | table | postgres 30 public | django_migrations | table | postgres 31 public | django_session | table | postgres 32 public | tbl_data | table | postgres 33(11 rows)

###Docker dbコンテナの設定

dockerps

1>docker ps 2CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 3d11a38cab522 project_web "bash -c 'sh /projec…" 2 hours ago Up 2 hours 0.0.0.0:8000->8000/tcp web 4da47551ce7a0 postgres:11 "docker-entrypoint.s…" 2 hours ago Up 2 hours 0.0.0.0:5433->5432/tcp db

dockercomposeyml

1#docker-compose.yml 2version: '3.7' 3 4services: 5 db: 6 container_name: db 7 image: postgres:11 # 8 volumes: 9 - ./dbdata:/var/lib/postgresql/data 10 ports: 11 - 5433:5432 12 (中略)

PythonフレームワークDjangoのDB設定

settingspy

1#PostgreSQL 2 DATABASES = { 3 'default': { 4 'ENGINE': 'django.db.backends.postgresql', 5 'NAME': 'db_data', 6 'USER': 'postgres', 7 'PASSWORD': 'postgres', 8 'HOST': 'db', 9 'PORT': 5432, 10 } 11}

##■環境
Windows 10
HeidiSQL(SQLクライアントアプリ)
Docker Desktop
Django

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

sazi

2020/10/02 06:44

SQLクライアントの画像はスキーマ内のテーブルを表示している状態ではありませんが、public内にテーブルは無いという事でしょうか?
sazi

2020/10/02 06:48

使い方が分からないツール(HeidiSQL)を敢えて利用する理由があるんでしょうか?
guest

回答1

0

ベストアンサー

HeidiSQLの接続設定でデータベースを指定していないから見えているものが違うんだと思います。
「コマンドプロンプトでの確認内容」ではデータベースは「db_data」みたいですから、同じものを指定すれば限定されると思います。

投稿2020/10/02 06:50

sazi

総合スコア25173

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

fukazume

2020/10/02 07:09

ご回答ありがとうございます!2枚目画像の赤枠の上部に「データベース名検索」という入力欄があるのですが、そこにdb_dataと入力しても何もヒットしないですね。 SQLクライアントソフトに特にこだわりもないので、他のソフトももう少し探ってみます!
sazi

2020/10/02 07:24

このツールはMysqlを基準にしているみたいですね。 MySQLはデータベース=スキーマで概念が分かれていませんが、 Postgresではデータベースとスキーマは別ですからその辺を理解しておかないと駄目じゃないかと思います。
fukazume

2020/10/05 00:14

再度ありがとうございます!pgAdmin4というSQLクライアントで同じdbコンテナ(127.0.0.1:5433)にアクセスすると、データベースおよびテーブルがCLIで表示されるものと同じ構成で閲覧することができました。アドバイスいただき誠にありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問