php连接docker运行的mysql,显示(HY000/2002): Connection refused的解决办法
php连接docker运行的mysql,显示(HY000/2002): Connection refused的解决办法 - 斌哥tobin - 博客园 (cnblogs.com)
-
php要连接docker中运行的mysql是不能用localhost, 127.0.0.1来连接的,因为每个docker运行容器的localhost 127.0.0.1都是自己容器本身,不是mysql容器,需要修改成母机 IP,或者是mysql容器名称
-
比如有如下的docker-compose.yml
version: '3'
services:
mysql:
# build: ./mysql
image: daocloud.io/library/mysql:5.7.20
volumes:
- ./mysql/conf:/etc/mysql
- ./mysql/data:/var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD=root
ports:
- "3306:3306"
networks:
- lnmp
php54:
build: ./php54
# # 使用宿主:容器 (HOST:CONTAINER)格式或者仅仅指定容器的端口(宿主将会随机选择端口)都可以
# # 开放9000端口
ports:
- "9005:9000"
# # 此处实现文件夹代码目录映射
volumes:
- ../:/data
- ./php54/hosts:/etc/hosts
- ./php54/etc/php/php.ini:/usr/local/etc/php/php.ini
- ./php54/etc/php-fpm.conf:/usr/local/etc/php-fpm.conf
links:
- mysql
privileged: true
networks:
- lnmp
nginx:
build: ./nginx
# 此处实现文件夹代码目录映射
volumes:
- ../:/data
- ./php54/hosts:/etc/hosts
links:
- php54:php54
privileged: true
ports:
- "80:80"
networks:
- lnmp
networks:
lnmp:
driver: bridge
- php中连接的 mysql 地址就是 mysql就可以连接了,不用 localhost 或127.0.0.1
cybuster:
两个container需要通信的时候需要在主动连接那侧加上 --link 容器名:别名 的参数
cybuster:
docker run -d -e PMA_ARBITRARY=1 --link charming_liskov:mysql -p 8080:80 phpmyadmin/phpmyadmin
作者:Chuck Lu GitHub |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
2022-03-11 CSS opacity 属性
2021-03-11 nvarchar(max) still being truncated
2020-03-11 The view 'Index' or its master was not found.
2019-03-11 JMeter -- Getting Started
2019-03-11 237. Delete Node in a Linked List
2016-03-11 SuperSocket中的Server的初始化和启动
2016-03-11 SuperSocket中的Server是如何初Start的