Docker Compose の Django: MySQL 接続の確立
Docker 環境内で Django を MySQL データベースに接続するのは困難な場合があります。この記事では、接続を確立しようとしたときに発生し、次のエラーが発生する問題について詳しく説明します。「'mariadb55' の MySQL サーバーに接続できません (111 "接続が拒否されました")。
最初、データベースはDocker Compose up db を介してアクセスでき、ローカル インスタンスは Python manage.py runserver を介して接続できました。ただし、Django 内からの接続は失敗しました。
さらに調査したところ、問題は Django settings.py 構成ファイルで間違ったポートとホスト名を使用したことが原因であることが判明しました。
解決策:
解決策は、settings.py ファイルに正しいポートとホスト名が設定されていることを確認することでした。具体的には、設定ではホストとして「db」、ポートとして「3306」を使用する必要があります。
Updated settings.py:
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'test', 'USER': 'belter', 'HOST': 'db', 'PORT': '3306', 'PASSWORD': 'belter_2017', 'default-character-set': 'utf8', 'OPTIONS': { 'sql_mode': 'traditional', } } }
さらに、追加のDjango から接続を試行する前に MySQL ポートが開いているかどうかを確認するコマンドが Docker Compose 構成ファイルに追加されました。
これらの変更を適用することで、Docker 環境内の Django と MySQL 間の接続が正常に確立されました。
以上がリクエストされた質問と回答の形式に従って、いくつかのタイトルのオプションを次に示します。 オプション 1 (より直接的): * Docker Compose の Django: MySQL データベースに接続できないのはなぜですか? オプション 2 (より詳細な仕様の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。