admin管理员组文章数量:1192917
I have docker-compose setup with 2 databases and 2 phpmyadmins. First one works fine, but I have problems connecting to second one (mysql_logs). When I open phpmyadmin2 (localhost:8081) it says it cannot connect to database:
Cannot connect: invalid settings.
mysqli::real_connect(): (HY000/2002): Connection refused
docker-compose.yml:
services:
mysql_logs:
image: mysql:5.6
restart: on-failure
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: logs
ports:
- '3307:3306'
mysql:
image: mysql:5.6
restart: on-failure
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: app
ports:
- '3306:3306'
nginx:
image: nginx:1.19.0-alpine
restart: on-failure
volumes:
- './public/:/usr/src/app'
- './docker/nginx/default.conf:/etc/nginx/conf.d/default.conf:ro'
ports:
- '80:80'
depends_on:
- php
php:
build:
context: .
dockerfile: docker/php/Dockerfile
volumes:
- './:/usr/src/app'
depends_on:
- mysql
phpmyadmin:
image: phpmyadmin
restart: always
ports:
- 8080:80
environment:
- PMA_HOST=mysql
- PMA_PORT=3306
- PMA_USER=root
- PMA_PASSWORD=root
phpmyadmin2:
image: phpmyadmin
restart: always
ports:
- 8081:80
environment:
- PMA_HOST=mysql_logs
- PMA_PORT=3307
- PMA_USER=root
- PMA_PASSWORD=root
I have docker-compose setup with 2 databases and 2 phpmyadmins. First one works fine, but I have problems connecting to second one (mysql_logs). When I open phpmyadmin2 (localhost:8081) it says it cannot connect to database:
Cannot connect: invalid settings.
mysqli::real_connect(): (HY000/2002): Connection refused
docker-compose.yml:
services:
mysql_logs:
image: mysql:5.6
restart: on-failure
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: logs
ports:
- '3307:3306'
mysql:
image: mysql:5.6
restart: on-failure
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: app
ports:
- '3306:3306'
nginx:
image: nginx:1.19.0-alpine
restart: on-failure
volumes:
- './public/:/usr/src/app'
- './docker/nginx/default.conf:/etc/nginx/conf.d/default.conf:ro'
ports:
- '80:80'
depends_on:
- php
php:
build:
context: .
dockerfile: docker/php/Dockerfile
volumes:
- './:/usr/src/app'
depends_on:
- mysql
phpmyadmin:
image: phpmyadmin
restart: always
ports:
- 8080:80
environment:
- PMA_HOST=mysql
- PMA_PORT=3306
- PMA_USER=root
- PMA_PASSWORD=root
phpmyadmin2:
image: phpmyadmin
restart: always
ports:
- 8081:80
environment:
- PMA_HOST=mysql_logs
- PMA_PORT=3307
- PMA_USER=root
- PMA_PASSWORD=root
Share
Improve this question
edited Jan 24 at 13:58
Shadow
34.2k10 gold badges63 silver badges74 bronze badges
asked Jan 24 at 12:48
FisherFisher
1,7942 gold badges19 silver badges38 bronze badges
1 Answer
Reset to default 1In phpmyadmin2.environment
, you defined PMA_PORT=3007
because you were trying to connect to mysql_logs
which is the second database, right?
And because you did
services:
mysql_logs:
ports:
- '3307:3306'
you thought mysql_logs
was exposed on port 3307
, right?
Well, there resides the issue. mysql_logs
is published on port 3307
, but only for the host machine. For the other services defined in services
, its still exposed on port 3306
.
So to fix that, in phpmyadmin2.environment
, you need to define PMA_PORT=3006
本文标签: Cannot connect to mysql in 2 database containers dockercompose setupStack Overflow
版权声明:本文标题:Cannot connect to mysql in 2 database containers docker-compose setup - Stack Overflow 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.betaflare.com/web/1738418273a2085711.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论