也许这个问题以前问过几次,但我没有得到一个有效的答案,可以解决我的问题。
我试图使用docker-compose在不同容器上运行phpmyadmin,但始终会遇到以下错误:
#2002 -连接被拒绝-服务器没有响应(或者本地服务器的套接字没有正确配置)。
我的停靠器撰写文件包含以下代码:
version: "2"
services:
web:
build: .
ports:
- "80:80"
networks:
- web
volumes:
- .:/code
restart: always
db:
image: "mysql:5"
volumes:
- ./mysql:/etc/mysql/conf.d
environment:
MYSQL_ROOT_PASSWORD: toor
MYSQL_DATABASE: phpapp
networks:
- web
restart: always
phpmyadmin:
image: phpmyadmin/phpmyadmin
environment:
PMA_PORT: 3306
PMA_HOST: db
PMA_USER: root
PMA_PASSWORD: toor
ports:
- "8000:80"
restart: always
networks:
- web
networks:
web:
driver: bridge在web容器中,我试图连接数据库,它运行良好,但是phpmyadmin连接会出现问题。
任何帮助都将不胜感激。:)
发布于 2018-02-08 11:07:44
有趣的是,我已经运行了您的撰写文件,并且可以从主机访问phpmyadmin。
不得不将端口8000更改为8004 (端口8000在我的主机上被占用)。
如果您的db-容器启动不够快,使得phpmyadmin无法连接,我建议将depends_on添加到phpmyadmin服务中。确保db在phpmyadmin之前启动。
phpmyadmin:
image: phpmyadmin/phpmyadmin
environment:
PMA_PORT: 3306
PMA_HOST: db
PMA_USER: root
PMA_PASSWORD: toor
ports:
- "8004:80"
restart: always
depends_on:
- db
networks:
- web如果问题仍然存在,请显示来自docker-compose up的日志。
发布于 2019-01-08 04:58:21
现在,您需要将命令添加到mysql服务中,以便连接到phpmyadmin。
--default-authentication-plugin=mysql_native_password命令:命令
version: "2"
services:
db:
image: mysql:latest
command: --default-authentication-plugin=mysql_native_password
ports:
- "3306:3306"
environment:
MYSQL_DATABASE: drupal
MYSQL_USER: user
MYSQL_PASSWORD: test
MYSQL_ROOT_PASSWORD: test
volumes:
- ./dump:/docker-entrypoint-initdb.d
- /var/lib/mysql
networks:
- default
phpmyadmin:
image: phpmyadmin/phpmyadmin
links:
- db:db
ports:
- 8000:80
environment:
PMA_HOST: db
MYSQL_USER: user
MYSQL_PASSWORD: test
MYSQL_ROOT_PASSWORD: testhttps://stackoverflow.com/questions/48682281
复制相似问题