Django kann mit Docker-Compose nicht mit MySQL in Docker verbunden werden
Versuch, eine Verbindung zwischen Django und MySQL in einer Docker-Umgebung mit herzustellen docker-compose kann zu folgendem Fehler führen:
django.db.utils.OperationalError: (2003, 'Can\'t connect to MySQL server on \'mariadb55\' (111 "Connection refused")')
Lösung
Um dieses Problem zu beheben, muss unbedingt sichergestellt werden, dass der in der angegebene Port und Host angegeben ist Die Django-Einstellungsdatei stimmt mit der tatsächlichen Konfiguration in der Datei docker-compose.yml überein.
Schritte zur Behebung des Problems:
Stellen Sie in „settings.py“ den Host auf „db“ und den Port auf „3306“ ein:
Passen Sie die Datei docker-compose.yml an:
Aktivieren Sie eine Prüfung auf offene Ports:
Beispiel für Docker-Compose .yml-Datei:
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
Zusätzliche Tipps:
Indem Sie diese Schritte befolgen, können Sie mit docker-compose eine stabile Verbindung zwischen Django und MySQL innerhalb einer Docker-Umgebung herstellen.
Das obige ist der detaillierte Inhalt vonHier ist ein fragenbasierter Titel, der das Wesentliche des Artikels auf den Punkt bringt: Warum kann meine Django-App über Docker-Compose keine Verbindung zu MySQL in Docker herstellen? Hier sind einige andere Variationen: * Django zu MySQL. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!