我有一个小问题与mysql服务器.我创建了我的docker-compose.yml,但当我想访问phpMyAdmin(localhost:8080),一个错误消息出现说:“phpMyAdmin尝试连接MySQL服务器,但服务器拒绝连接。请检查值 配置中的主机、用户名和密码,并确保它们与MySQL服务器管理员提供的信息匹配”。
这是我的docker-compose文件,谢谢你的帮助
version: '2'
services:
apache:
image: rafaelcgstz/magento2
# build: .
ports:
- 80:80
- 9001:9000
# - "35729:35729" # live reload
volumes:
- ./src:/var/www/html
- ~/.composer:/var/www/.composer
- ~/.npm:/var/www/.npm
# - ~/.nvm:/var/www/.nvm
environment:
XDEBUG_CONFIG: "remote_host=localhost"
PHP_IDE_CONFIG: "serverName=Docker"
depends_on:
- db
links:
- db
networks:
- magento-network
db:
image: mariadb
ports:
- 3300:3306
environment:
- MYSQL_ROOT_PASSWORD=root
- MYSQL_DATABASE=magento
- MYSQL_USER=magento
- MYSQL_PASSWORD=magento
volumes:
- dbdata:/var/lib/mysql
networks:
- magento-network
phpmyadmin:
image: phpmyadmin/phpmyadmin
environment:
- PMA_HOST=db
- PMA_USER=root
- PMA_PASSWORD=root
- MYSQL_ROOT_PASSWORD=root
ports:
- 8080:80
networks:
- magento-network
redis:
image: redis
ports:
- 6379
networks:
- magento-network
redis-session:
image: redis
ports:
- 6379
networks:
- magento-network
mailhog:
image: mailhog/mailhog
ports:
- 1025:1025
- 8025:8025
networks:
- magento-network
networks:
magento-network:
driver: bridge
volumes:
dbdata:
driver: local
3条答案
按热度按时间agyaoht71#
mariadb
服务定义中似乎存在拼写错误:您已配置端口Map,以便可以在
3300
访问容器,但您未将此信息传递给PHPMyadmin。因此,连接尝试仅超时。边注:您根本不需要为数据库公开端口-其他容器将使用Docker的虚拟网络与数据库通信,对于本地访问,您可以使用
docker container -it exec <container-id> mysql...
或docker-compose exec db mysql...
5us2dqdw2#
虽然这篇文章中的端口似乎有一个错字,但我想指出的是,确保您的用户能够访问“TO”和“FROM "适当的IP是很重要的。
这是通过docker运行adminer / phpadmin时更新访问域的示例(完全开放-根据需要调整):
将 . 上的所有权限授予“admin '@”255.255.255.0“,并使用”授予“选项标识”密码“;
我在这里添加这个答案,因为我也登陆了这个页面,同样的错误。
3npbholx3#
我用以下命令解决了我的问题: