Mysql
 sql >> Datenbank >  >> RDS >> Mysql

MYSQL_ROOT_PASSWORD ist gesetzt, aber Zugriff verweigert für Benutzer „root“@„localhost“ (mit Passwort:YES) im Docker-Container

Wenn Sie davon ausgehen, dass Sie Ihr gesamtes Startprotokoll angezeigt haben, scheint es, dass Sie Ihren MySQL-Container mit einem bereits vorhandenen db_data gestartet haben Volume, das bereits ein MySQL-Datenbank-Dateisystem enthält.

In diesem Fall wird beim Containerstart absolut nichts initialisiert und Umgebungsvariablen sind nutzlos. Zitieren der offiziellen Bilddokumentation im Abschnitt "Umgebungsvariablen":

Wenn Sie möchten, dass Ihre Instanz initialisiert wird, müssen Sie von vorne beginnen. Es ist ganz einfach mit Docker Compose zu tun, wenn Sie ein benanntes Volume wie in Ihrem Fall verwenden. Warnung:Dadurch werden die Inhalte in Ihren db_data dauerhaft gelöscht Volumen und löscht alle vorherigen Datenbanken, die Sie dort hatten . Erstellen Sie zuerst eine Sicherungskopie, wenn Sie den Inhalt behalten müssen.

docker-compose down -v
docker-compose up -d

Wenn Sie jemals zu einem Bind-Mount konvertieren, müssen Sie den gesamten Inhalt selbst löschen (z. B. rm -rf /path/to/bind/mount/* )

Hinweis:Viele andere offizielle db-Docker-Images (postgres, mongo....) funktionieren ähnlich.