Maison  >  Article  >  base de données  >  Comment réparer « OperationalError : Impossible de se connecter au serveur MySQL » lors de l'utilisation de Django et Docker ?

Comment réparer « OperationalError : Impossible de se connecter au serveur MySQL » lors de l'utilisation de Django et Docker ?

Patricia Arquette
Patricia Arquetteoriginal
2024-11-02 19:35:30513parcourir

How to Fix

Connexion de Django à MySQL dans Docker

Lorsque vous essayez de connecter Django à MySQL dans un environnement Docker à l'aide de Compose, vous pouvez rencontrer une « OperationalError : Impossible de se connecter au serveur MySQL ». Cette erreur survient généralement en raison de configurations de conteneur ou de paramètres de base de données incorrects.

Résolution du problème

Les paramètres corrects pour établir une connexion entre Django et MySQL dans Docker sont :

  • Définissez 'HOST' : 'db' dans le fichier settings.py de Django.
  • Utilisez 3306 comme numéro de port dans settings.py.
  • Définissez l'environnement MYSQL_PORT variable à 3306 dans docker-compose.yml.
  • Conservez la variable d'environnement MYSQL_HOST en tant que localhost.

Pour vous assurer que vous êtes connecté avec succès, vous pouvez utiliser la commande suivante dans votre Fichier docker-compose.yml :

  web:
    image: onlybelter/django_py35
    command: /bin/sh -c "python check_db.py --service-name mysql --ip db --port 3306"
    volumes:
      - .:/djcode

Cette commande exécute un script qui vérifie si le port MySQL est ouvert. Si tel est le cas, le script affichera un message indiquant le succès.

Conseils supplémentaires

  • Pour vous connecter directement au conteneur MySQL, utilisez mysql -h 127.0. 0.1 -P 3302 -u root -p dans votre shell.
  • Si plusieurs conteneurs Django sont en cours d'exécution, assurez-vous d'utiliser des numéros de port différents pour chacun afin d'éviter les conflits.
  • Vous pouvez utiliser Commande docker-compose logs de Docker pour vérifier les erreurs ou avertissements potentiels liés à la connectivité de la base de données.

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!

Déclaration:
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