Impossible de connecter Django à MySQL dans Docker à l'aide de Docker-Compose
Tentative d'établissement d'une connexion entre Django et MySQL dans un environnement Docker à l'aide docker-compose peut entraîner l'erreur suivante :
django.db.utils.OperationalError: (2003, 'Can\'t connect to MySQL server on \'mariadb55\' (111 "Connection refused")')
Solution
Pour résoudre ce problème, il est crucial de s'assurer que le port et l'hôte spécifiés dans le Le fichier de paramètres Django s'aligne sur la configuration réelle dans le fichier docker-compose.yml.
Étapes pour résoudre le problème :
Définissez l'hôte sur 'db' et le port sur '3306' dans settings.py :
Ajustez le fichier docker-compose.yml :
Activez une vérification des ports ouverts :
Exemple docker-compose Fichier .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
Conseils supplémentaires :
En suivant ces étapes, vous pouvez établir une connexion stable entre Django et MySQL dans un environnement Docker à l'aide de docker-compose.
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!