Heim >Datenbank >MySQL-Tutorial >Warum zeigt mein MySQL-Docker-Container „Zugriff verweigert' an, obwohl „MYSQL_ROOT_PASSWORD' festgelegt ist?

Warum zeigt mein MySQL-Docker-Container „Zugriff verweigert' an, obwohl „MYSQL_ROOT_PASSWORD' festgelegt ist?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-12-05 08:03:10470Durchsuche

Why Does My MySQL Docker Container Show

MYSQL_ROOT_PASSWORD ist festgelegt, aber ich erhalte die Meldung „Zugriff verweigert“, wenn ich versuche, in einem Docker-Container auf die MySQL-Datenbank zuzugreifen

Problem:

Sie haben MYSQL_ROOT_PASSWORD in Ihrer Docker-docker-compose.yml-Datei festgelegt, aber Wenn Sie versuchen, eine Verbindung zur MySQL-Datenbank herzustellen, erhalten Sie die Fehlermeldung „Zugriff für Benutzer ‚root‘@‘localhost‘ verweigert (mit Passwort: JA).“

Ursache:

Die wahrscheinlichste Ursache ist, dass Sie Ihren MySQL-Container auf einem bereits vorhandenen Volume starten, das bereits ein MySQL-Datenbankdateisystem enthält. In diesem Fall hat keine der Umgebungsvariablen, einschließlich MYSQL_ROOT_PASSWORD, irgendeine Auswirkung.

Lösung:

Um von vorne zu beginnen und Ihren Container zu initialisieren, müssen Sie dies tun Löschen Sie das vorhandene Datenvolumen und starten Sie den Container mit einem neuen. Dadurch werden alle vorherigen Datenbanken im Datenvolumen gelöscht. Stellen Sie daher sicher, dass Sie bei Bedarf ein Backup erstellen.

Schritte:

  1. Verwenden Sie docker-compose down – v, um das vorhandene Datenvolumen zu löschen.
  2. Verwenden Sie docker-compose up -d, um den Container mit neuen Daten zu starten Volumen.

Zusätzliche Informationen:

Dieses Problem ist nicht auf MySQL-Docker-Images beschränkt. Viele offizielle Docker-Images für Datenbanken (z. B. PostgreSQL, MongoDB) funktionieren auf ähnliche Weise. Wenn dieses Problem bei anderen Datenbanken auftritt, wird daher wahrscheinlich die Problemumgehung angewendet, indem das Datenvolumen gelöscht und der Container von Grund auf neu gestartet wird.

Das obige ist der detaillierte Inhalt vonWarum zeigt mein MySQL-Docker-Container „Zugriff verweigert' an, obwohl „MYSQL_ROOT_PASSWORD' festgelegt ist?. 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