可能是这个问题曾经问过几次,但我没有得到一个可以解决我问题的有效答案。
我正在尝试使用docker-compose
在不同容器上的docker中运行phpmyadmin,但它总是通过以下错误:
#2002 - 拒绝连接 - 服务器没有响应(或者未正确配置本地服务器的套接字)。
我的docker compose文件包含以下代码:
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
连接
任何帮助将不胜感激。 :)
答案 0 :(得分:1)
有趣的是,我已经运行了你的compose-file,并且可以访问phpmyadmin 来自主持人。
但是必须将端口8000更改为8004(端口8000在我的主机上占用)。
如果您的db-container启动速度不足以让phpmyadmin连接,我建议将 depends_on 添加到phpmyadmin服务中。确保db在phpmyadmin之前启动。
complex(3, 5)
complex(*(3, 5))
如果问题仍然存在,请显示 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
的日志。
答案 1 :(得分:1)
现在,您需要向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: test