Django dans Docker Compose : établissement d'une connexion MySQL
Connecter Django à une base de données MySQL dans un environnement Docker peut être difficile. Cet article se penche sur le problème rencontré lors de la tentative d'établissement de la connexion, conduisant à l'erreur : "Impossible de se connecter au serveur MySQL sur 'mariadb55' (111 "Connexion refusée")."
Initialement, la base de données était accessible via Docker Compose up db et une instance locale était connectable via Python manage.py runserver. Cependant, la connexion depuis Django a échoué.
Après une enquête plus approfondie, il a été découvert que le problème provenait de l'utilisation d'un port et d'un nom d'hôte incorrects dans le fichier de configuration settings.py de Django.
Solution :
La solution consistait à garantir que le port et le nom d'hôte corrects étaient définis dans le fichier settings.py. Plus précisément, les paramètres doivent utiliser « db » comme hôte et « 3306 » comme port.
Paramètres.py mis à jour :
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', } } }
De plus, un paramètre supplémentaire La commande a été ajoutée au fichier de configuration Docker Compose pour vérifier si le port MySQL était ouvert avant de tenter la connexion depuis Django.
En appliquant ces modifications, la connexion entre Django et MySQL dans l'environnement Docker a été établie avec succès.
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!