Maison > base de données > tutoriel mysql > le corps du texte

Pourquoi mon application Django dans Docker Compose ne parvient-elle pas à se connecter à MySQL, même si j'ai le bon nom de port et de conteneur ?

Patricia Arquette
Libérer: 2024-10-31 02:10:29
original
904 Les gens l'ont consulté

Why is my Django app in Docker Compose unable to connect to MySQL, even though I have the correct port and container name?

Dépannage de l'échec de la connexion Django-MySQL dans Docker Compose

Dans cet article, nous aborderons la question de l'établissement d'une connexion entre Django et MySQL dans les conteneurs Docker à l’aide de Docker Compose. Malgré la configuration des conteneurs comme indiqué dans la question, l'utilisateur rencontre l'erreur suivante :

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

Après un dépannage exhaustif, l'utilisateur a découvert la cause première et la solution. Voici les informations cruciales :

Points clés :

  • Vérifiez la cohérence du port : Assurez-vous que le numéro de port spécifié dans les paramètres de Django Le fichier correspond au numéro de port exposé par le conteneur MySQL. Dans ce cas, le port doit être 3306 et non 3302.
  • Utiliser le nom du conteneur pour HOST : Au lieu d'utiliser l'adresse IP du conteneur, spécifiez le nom du conteneur comme valeur HOST dans la base de données de Django configuration.

Configuration Docker Compose mise à jour :

services:
  db:
    ...
    ports:
      - "3302:3306"
  web:
    ...
    command: python3 manage.py runserver 0.0.0.0:6001
    ...
    volumes:
      - .:/djcode
    ports:
      - "6001:6001"
    depends_on:
      - db
Copier après la connexion

Fichier de paramètres Django mis à jour :

DATABASES = {
    'default': {
        ...
        'HOST': 'db',
        'PORT': '3306',
        ...
    }
}
Copier après la connexion

Conseils supplémentaires :

  • Utilisez le script check_db.py pour vérifier que le port MySQL est ouvert avant d'exécuter Django.
  • Référez-vous au Dockerfile fourni pour la construction l'image Django-Py35.
  • Explorez plus de détails sur le référentiel GitHub de l'utilisateur pour des informations supplémentaires.

En implémentant ces modifications, l'utilisateur a réussi à établir la connexion entre Django et MySQL dans Docker conteneurs, résolvant l'erreur "Impossible de se connecter au serveur MySQL".

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!