ホームページ  >  記事  >  データベース  >  以下は、記事の本質を捉えた質問形式のタイトルです。 Django アプリが Docker-Compose を使用して Docker で MySQL に接続できないのはなぜですか? その他のバリエーションをいくつか示します。 * Django から MySQL へ

以下は、記事の本質を捉えた質問形式のタイトルです。 Django アプリが Docker-Compose を使用して Docker で MySQL に接続できないのはなぜですか? その他のバリエーションをいくつか示します。 * Django から MySQL へ

Linda Hamilton
Linda Hamiltonオリジナル
2024-10-29 05:34:311068ブラウズ

Here's a question-based title that captures the essence of the article:

Why Can't My Django App Connect to MySQL in Docker Using Docker-Compose? 

Here are some other variations:

* Django to MySQL in Docker: Troubleshooting Connection Errors with dock

Docker-Compose を使用して Docker で Django と MySQL に接続できません

次を使用して Docker 環境内で Django と MySQL 間の接続を確立しようとしていますdocker-compose は次のエラーを引き起こす可能性があります:

django.db.utils.OperationalError: (2003, 'Can\'t connect to MySQL
  server on \'mariadb55\' (111 "Connection refused")')

解決策

この問題を解決するには、docker-compose で指定されたポートとホストが確実に設定されていることを確認することが重要です。 Django 設定ファイルは、docker-compose.yml ファイル内の実際の構成と一致します。

問題を修正する手順:

  1. settings.py:

    • 'HOST': 'db',
    • 'PORT': '3306 でホストを 'db'、ポートを '3306' に設定します。 '、
  2. docker-compose.yml ファイルを調整します:

    • データベース サービス用にポートが公開されていることを確認しますは 3306 です。
    • Django とデータベース サービスをリンクするときに、db をホストとして使用します。
  3. 開いているポートのチェックをアクティブ化します:

    • 追加のコマンドを docker-compose.yml に追加して、指定されたポートがアクセス可能かどうかを確認します。

例 docker-compose .yml ファイル:

version: '3'

services:
  db:
    image: mariadb:5.5
    restart: always
    environment:
      - MYSQL_HOST=localhost
      - MYSQL_PORT=3306
      - MYSQL_ROOT_HOST=%
      - MYSQL_DATABASE=test
      - MYSQL_USER=belter
      - MYSQL_PASSWORD=belter_2017
      - MYSQL_ROOT_PASSWORD=123456_abc
    volumes:
      - /home/belter/mdbdata/mdb55:/var/lib/mysql
    ports:
      - "3302:3306"
  web:
    image: onlybelter/django_py35
    command: /bin/sh -c "python check_db.py --service-name mysql --ip db --port 3306"
    volumes:
      - .:/djcode

追加のヒント:

  • Django コンテナ内から MySQL に接続するときは、ホストとして db を使用します ( mysql -h db -p ... コマンド)。
  • nmap -p 3306 localhost を実行して、3306 が利用可能かどうかを確認します。
  • 次を使用して、Django とデータベース コンテナーが適切に実行されていることを確認します。 : docker-compose ps.

これらの手順に従うことで、docker-compose を使用して Docker 環境内で Django と MySQL の間に安定した接続を確立できます。

以上が以下は、記事の本質を捉えた質問形式のタイトルです。 Django アプリが Docker-Compose を使用して Docker で MySQL に接続できないのはなぜですか? その他のバリエーションをいくつか示します。 * Django から MySQL への詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。