J'ai un fichier de composition de docker qui essaie essentiellement de créer un environnement de style WAMP / LAMP.
En gros, PHPMyAdmin ne semble pas pouvoir se connecter à MySQL. En regardant les réponses ici, il est apparu que c'était un problème avec l'authentification héritée utilisant MySQL Image 8, j'ai donc ajouté:
version: "3.1" services: site: build: . ports : - "80:80" volumes: - ./www:/var/www/html/ links: - database networks: - php-network ####################################### # PHP MY ADMIN ####################################### phpmyadmin: build: context: . dockerfile: PHPMYADMIN.Dockerfile restart: always links: - database:mysql environment: PMA_HOST: mysql PMA_PORT: 3306 ports: - "8080:80" environment: - MYSQL_USERNAME=admin - MYSQL_PASSWORD=root networks: - php-network ####################################### # MySQL server ####################################### database: image: mysql:5.7.25 ports: - "3306:3306" container_name: db-mysql restart: always environment: - MYSQL_ROOT_PASSWORD=root - MYSQL_DATABASE=test_db - MYSQL_USER=admin - MYSQL_PASSWORD=root networks: - php-network networks: php-network: driver: bridge
mais cela n'a pas fonctionné, alors je suis passé à mysql image5.7 et le problème est toujours présent. Pour une raison quelconque, je ne peux pas me connecter à MySQL et j'obtiens l'erreur:
mysqli_real_connect(): (HY000/2002): php_network_getaddresses: getaddrinfo failed: Try again
et
mysqli_real_connect(): php_network_getaddresses: getaddrinfo failed: Try again
Voici une copie de mon Docker Compose qui, à mon avis, ne fait rien de bizarre.
En espérant que quelqu'un puisse clarifier cela pour moi.
command: --default-authentication-plugin=mysql_native_password
J'ai aussi vu mention d'un drapeau "dépend de" que j'ai essayé aussi mais qui n'a pas non plus permis de me connecter. J'ai toujours eu la même erreur.
3 Réponses :
Selon la configuration de votre service phpmyadmin
, vous essayez d'accéder au conteneur mysql par l'adresse mysql
:
environment: PMA_HOST: database PMA_PORT: 3306
Mais conteneur avec mysql Le serveur est accessible par les adresses database
ou db-mysql
.
Vous devez donc modifier la configuration du service phpmyadmin
en:
environment: PMA_HOST: mysql PMA_PORT: 3306
Merci, j'ai changé le service, mais je crains toujours de recevoir les mêmes erreurs.
Il s'agit du nom du conteneur.
database: image: mysql:5.7.25 ports: - "3306:3306" - **container_name: db-mysql** and in your phpcontainer: phpmyadmin: build: context: . dockerfile: PHPMYADMIN.Dockerfile restart: always links: - database:mysql environment: **PMA_HOST: mysql** PMA_PORT: 3306 you define host as mysql, which in docker network will be unrecognizable. try switching PMA_HOST to db-mysql.
Désolé pour le mauvais formatage.
Utilisez également docker ps pour voir les noms des conteneurs de docker et pour déterminer les hôtes dont vous avez besoin pour vous connecter.
Cela fonctionne maintenant avec les éléments suivants:
version: "3.1" services: www: build: . ports: - "8081:80" volumes: - ./www:/var/www/html/ links: - db networks: - default ####################################### # MySQL server ####################################### db: image: mysql:5.7.25 ports: - "3306:3306" environment: MYSQL_DATABASE: test_db MYSQL_ROOT_PASSWORD: test volumes: - ./dump:/docker-entrypoint-initdb.d - persistent:/var/lib/mysql networks: - default ####################################### # PHP MY ADMIN ####################################### phpmyadmin: image: phpmyadmin/phpmyadmin links: - db:db ports: - 8080:80 environment: MYSQL_USER: user MYSQL_PASSWORD: test MYSQL_ROOT_PASSWORD: test volumes: persistent:
Pourriez-vous ajouter
PHPMYADMIN.Dockerfile
à la question?