Heim  >  Artikel  >  Datenbank  >  Wie behebt man „OperationalError: Es kann keine Verbindung zum MySQL-Server hergestellt werden“ bei Verwendung von Django und Docker?

Wie behebt man „OperationalError: Es kann keine Verbindung zum MySQL-Server hergestellt werden“ bei Verwendung von Django und Docker?

Patricia Arquette
Patricia ArquetteOriginal
2024-11-02 19:35:30513Durchsuche

How to Fix

Django mit MySQL in Docker verbinden

Beim Versuch, Django in einer Docker-Umgebung mithilfe von Compose mit MySQL zu verbinden, kann ein „OperationalError“ auftreten : Es kann keine Verbindung zum MySQL-Server hergestellt werden. Dieser Fehler tritt typischerweise aufgrund falscher Containerkonfigurationen oder Datenbankeinstellungen auf.

Behebung des Problems

Die richtigen Parameter zum Herstellen einer Verbindung zwischen Django und MySQL in Docker sind:

  • Setzen Sie „HOST“: „db“ in der Datei „settings.py“ von Django.
  • Verwenden Sie 3306 als Portnummer in „settings.py“.
  • Legen Sie die MYSQL_PORT-Umgebung fest Variable auf 3306 in docker-compose.yml.
  • Behalten Sie die Umgebungsvariable MYSQL_HOST als localhost bei.

Um sicherzustellen, dass Sie erfolgreich verbunden sind, können Sie den folgenden Befehl in Ihrem verwenden docker-compose.yml-Datei:

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

Dieser Befehl führt ein Skript aus, das prüft, ob der MySQL-Port geöffnet ist. Wenn dies der Fall ist, zeigt das Skript eine Erfolgsmeldung an.

Zusätzliche Tipps

  • Um eine direkte Verbindung zum MySQL-Container herzustellen, verwenden Sie mysql -h 127.0. 0.1 -P 3302 -u root -p in Ihrer Shell.
  • Wenn Sie mehrere Django-Container ausführen, stellen Sie sicher, dass Sie für jeden unterschiedliche Portnummern verwenden, um Konflikte zu vermeiden.
  • Sie können verwenden Docker-Befehl „docker-compose logs“, um nach möglichen Fehlern oder Warnungen im Zusammenhang mit der Datenbankkonnektivität zu suchen.

Das obige ist der detaillierte Inhalt vonWie behebt man „OperationalError: Es kann keine Verbindung zum MySQL-Server hergestellt werden“ bei Verwendung von Django und Docker?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn