Mysql
 sql >> Base de données >  >> RDS >> Mysql

MYSQL_ROOT_PASSWORD est défini mais l'accès est refusé pour l'utilisateur 'root'@'localhost' (en utilisant le mot de passe :YES) dans le conteneur Docker

En prenant pour acquis que vous avez montré l'intégralité de votre journal de démarrage, il semble que vous ayez démarré votre conteneur mysql avec un db_data préexistant volume contenant déjà un système de fichiers de base de données mysql.

Dans ce cas, absolument rien ne sera initialisé au démarrage du conteneur et les variables d'environnement sont inutiles. Citant la documentation officielle des images dans la section "Variables d'environnement" :

Si vous souhaitez que votre instance soit initialisée, vous devez repartir de zéro. C'est assez facile à faire avec docker compose lorsque vous utilisez un volume nommé comme dans votre cas. Attention :cela supprimera définitivement le contenu de votre db_data volume, effaçant toute base de données précédente que vous aviez là . Créez d'abord une sauvegarde si vous avez besoin de conserver le contenu.

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

Si jamais vous convertissez en montage lié, vous devrez supprimer tout son contenu vous-même (c'est-à-dire rm -rf /path/to/bind/mount/* )

Remarque :de nombreuses autres images officielles de db docker (postgres, mongo....) fonctionnent de la même manière.