Heim > Datenbank > MySQL-Tutorial > Warum tritt für den MySQL-Root-Benutzer „Zugriff verweigert' auf, selbst wenn MYSQL_ROOT_PASSWORD in Docker festgelegt ist?

Warum tritt für den MySQL-Root-Benutzer „Zugriff verweigert' auf, selbst wenn MYSQL_ROOT_PASSWORD in Docker festgelegt ist?

DDD
Freigeben: 2024-12-20 08:20:11
Original
442 Leute haben es durchsucht

Why Does

MySQL_ROOT_PASSWORD ist festgelegt, aber der Zugriff wurde für Benutzer „root“@„localhost“ verweigert (mit Kennwort: JA)

In Docker-MySQL-Umgebungen , reicht das Setzen der Umgebungsvariablen MYSQL_ROOT_PASSWORD nicht aus, um den Zugriff auf die Datenbank sicherzustellen. Dies liegt daran, dass das Image keine neue Datenbank initialisiert, wenn das db_data-Volume bereits eine vorhandene Installation enthält.

Fehlerbehebung:

  1. Überprüfen Sie, ob a Die Datenbank ist bereits im db_data-Volume initialisiert: Wenn Sie den Container mit einem bereits vorhandenen Volume gestartet haben, haben die Umgebungsvariablen keine Auswirkung und Die Datenbank wird nicht initialisiert.
  2. Löschen Sie das db_data-Volume, um die Initialisierung zu erzwingen:

    • Führen Sie docker-compose down -v aus, um das vorhandene zu entfernen Volume.
    • Führen Sie docker-compose up -d aus, um den Container mit einem neuen Volume zu starten und zu initialisieren Datenbank.
  3. Bei Bedarf in einen Bind-Mount konvertieren:

    • Nach der Initialisierung der Datenbank können Sie Konvertieren Sie das Volume in einen Bind-Mount, indem Sie den Abschnitt „Volumes“ in docker-compose.yml ändern an:

      volumes:
         - /host/path/to/db_data:/var/lib/mysql
      Nach dem Login kopieren
    • Löschen Sie den Inhalt des Bind-Mount-Speicherorts, bevor Sie den Container starten: rm -rf /host/path/to/db_data/*
  4. Überprüfen Sie, ob andere potenzielle Probleme vorliegen:

    • Stellen Sie sicher, dass die Die Variable MYSQL_ROOT_PASSWORD ist richtig eingestellt.
    • Überprüfen Sie die Firewall-Einstellungen, um sicherzustellen, dass Port 3306 geöffnet ist.
    • Stellen Sie sicher, dass der MySQL-Dienst im Container ausgeführt wird.

Das obige ist der detaillierte Inhalt vonWarum tritt für den MySQL-Root-Benutzer „Zugriff verweigert' auf, selbst wenn MYSQL_ROOT_PASSWORD in Docker festgelegt ist?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage