php连接docker运⾏的mysql,显⽰(HY0002002):
Connectionr。。。
php要连接docker中运⾏的mysql是不能⽤localhost, 127.0.0.1来连接的,因为每个docker运⾏容器的localhost 127.0.0.1都是⾃⼰容器本⾝,不是mysql容器,需要修改成母机 IP,或者是mysql容器名称
⽐如有如下的l
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:
php调用mysql数据库- "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/f:/usr/local/f
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