Je veux déployer MySQL + PHPMyAdmin. Mon docker-compose.yml:
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
Après un certain temps, j'obtiens une erreur de sujet. MYSQL_ROOT_HOST n'a pas aidé. Quand j'essaye de me connecter à mysql depuis db-container:
version: "3" services: db: image: mysql:5.7 restart: always container_name: db volumes: - ./~mysql:/var/lib/mysql - ./mysql.cnf:/etc/mysql/conf.d/my.cnf environment: MYSQL_DATABASE: "dbtest" MYSQL_ROOT_PASSWORD: "123456" MYSQL_ROOT_HOST: "%" networks: - db command: --default-authentication-plugin=mysql_native_password healthcheck: test: "mysqladmin ping -h localhost" interval: 1s timeout: 1s retries: 60 phpmyadmin: image: phpmyadmin/phpmyadmin:4.7 restart: always container_name: phpmyadmin ports: - 8080:80 networks: - external-net - db environment: PMA_HOST: db depends_on: - db networks: external-net: external: name: external-net db: driver: bridge
Je ne sais vraiment pas quoi faire avec cette magie ... Thx.
p>
3 Réponses :
J'ai recréé votre configuration et je viens d'ajouter une configuration ENV pour faire l'affaire, j'ai supprimé la section des volumes car il n'y avait aucun problème avec elle:
docker-compose.yml
version: "3" services: db: image: mysql:5.7 restart: always container_name: db environment: - MYSQL_ROOT_PASSWORD=rootpasswd - MYSQL_DATABASE=phpmyadmin - MYSQL_USER=user - MYSQL_PASSWORD=userpasswd networks: - db command: --default-authentication-plugin=mysql_native_password healthcheck: test: "mysqladmin ping -h localhost" interval: 1s timeout: 1s retries: 60 phpmyadmin: image: phpmyadmin/phpmyadmin:4.7 restart: always container_name: phpmyadmin ports: - 8080:80 networks: - external-net - db environment: PMA_HOST: db depends_on: - db networks: external-net: external: name: external-net db: driver: bridge
Accéder à PHPMyadmin avec root: rootpasswd fonctionne bien.
Dans les paramètres généraux de Docker, activez le démon sans TLS. Je pense que ça marche.
Ce problème peut se produire si les fichiers de votre système local ont été créés de manière corrompue ou ne sont pas correctement accessibles par le démon Docker. Cela peut être dû aux raisons suivantes:
C
. --build
d'autoriser un accès à C
sur Windows, ces fichiers peuvent encore être corrompus. La solution pourrait être de supprimer les fichiers locaux correspondants après que l'accès à Docker a été accordé, dans votre cas, ce sont des fichiers dans / ~ mysql
et le fichier mysql.cnf code>.
C'est peut-être la même chose qu'ici: stackoverflow.com/questions/44590775/...