Docker-PHP/MySQL-PHP\u network\u getaddress:getaddrinfo失败:名称或服务未知
我有以下docker-compose.yml,大部分是从一些教程()中复制的: 现在我的问题是,我无法连接到MySQL。来自PHP或PhpMyAdmin的惠特。我尝试了以下连接字符串,但均无效:Docker-PHP/MySQL-PHP\u network\u getaddress:getaddrinfo失败:名称或服务未知,mysql,docker,symfony,docker-compose,Mysql,Docker,Symfony,Docker Compose,我有以下docker-compose.yml,大部分是从一些教程()中复制的: 现在我的问题是,我无法连接到MySQL。来自PHP或PhpMyAdmin的惠特。我尝试了以下连接字符串,但均无效: DATABASE_URL=mysql://root:root@mysql:3306/sf4 DATABASE_URL=mysql://sf4:sf4@mysql:3306/sf4 DATABASE_URL=mysql://root:root@sf4_mysql:3306/sf4 DATABASE_URL
DATABASE_URL=mysql://root:root@mysql:3306/sf4
DATABASE_URL=mysql://sf4:sf4@mysql:3306/sf4
DATABASE_URL=mysql://root:root@sf4_mysql:3306/sf4
DATABASE_URL=mysql://sf4:sf4@sf4_mysql:3306/sf4
... and hundreds more
但我总是得到:
PDO::__construct(): php_network_getaddresses: getaddrinfo failed: Name or service not known
或
或
感谢@emix和@LinPy在评论中帮助我,以下是固定配置:
version: '3'
services:
apache:
build: .docker/apache
container_name: sf4_apache
ports:
- 80:80
- 443:443
volumes:
- .docker/config/vhosts:/etc/apache2/sites-enabled
- .:/home/wwwroot/sf4:cached
depends_on:
- php
mysql:
image: mysql:5.7
container_name: sf4_mysql
#command: "--default-authentication-plugin=mysql_native_password"
#restart: always
ports:
- 3306:3306
volumes:
- .docker/data/db:/var/lib/mysql
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: sf4
MYSQL_USER: sf4
MYSQL_PASSWORD: sf4
php:
build: .docker/php
container_name: sf4_php
volumes:
- .:/home/wwwroot/sf4
environment:
- maildev_host=sf4_maildev
depends_on:
- maildev
- mysql
phpmyadmin:
image: phpmyadmin/phpmyadmin
container_name: sf4_phpmyadmin
environment:
PMA_HOST: mysql
PMA_PORT: 3306
ports:
- 8080:80
links:
- mysql
maildev:
image: djfarrelly/maildev
container_name: sf4_maildev
ports:
- 8001:80
连接字符串:
DATABASE_URL=mysql://sf4:sf4@mysql/sf4
感谢@emix和@LinPy在评论中帮助我,以下是固定配置:
version: '3'
services:
apache:
build: .docker/apache
container_name: sf4_apache
ports:
- 80:80
- 443:443
volumes:
- .docker/config/vhosts:/etc/apache2/sites-enabled
- .:/home/wwwroot/sf4:cached
depends_on:
- php
mysql:
image: mysql:5.7
container_name: sf4_mysql
#command: "--default-authentication-plugin=mysql_native_password"
#restart: always
ports:
- 3306:3306
volumes:
- .docker/data/db:/var/lib/mysql
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: sf4
MYSQL_USER: sf4
MYSQL_PASSWORD: sf4
php:
build: .docker/php
container_name: sf4_php
volumes:
- .:/home/wwwroot/sf4
environment:
- maildev_host=sf4_maildev
depends_on:
- maildev
- mysql
phpmyadmin:
image: phpmyadmin/phpmyadmin
container_name: sf4_phpmyadmin
environment:
PMA_HOST: mysql
PMA_PORT: 3306
ports:
- 8080:80
links:
- mysql
maildev:
image: djfarrelly/maildev
container_name: sf4_maildev
ports:
- 8001:80
连接字符串:
DATABASE_URL=mysql://sf4:sf4@mysql/sf4
发布php代码以连接到DB@LinPy这是基于symfony/doctor的,所以我并没有真正为连接编写自己的php代码。但是上面的DATABASE_URL-variable转换为:mysql://:@:/mysql://sf4:sf4@mysql/sf4。删除mysql的容器
命令部分。另外,请删除restart:always
lol,或者至少将其更改为restart:除非停止和PMA\u主机:sf4\u mysql
应该是PMA\u主机:mysql
OMG我爱你们,我尝试了几个小时类似的事情,但都没有成功。现在它终于起作用了!发布php代码以连接到DB@LinPy这是基于symfony/doctor的,所以我并没有真正为连接编写自己的php代码。但是上面的DATABASE_URL-variable转换为:mysql://:@:/mysql://sf4:sf4@mysql/sf4
。删除mysql的容器命令部分。另外,请删除restart:always
lol,或者至少将其更改为restart:除非停止和PMA\u主机:sf4\u mysql
应该是PMA\u主机:mysql
OMG我爱你们,我尝试了几个小时类似的事情,但都没有成功。现在它终于起作用了!
DATABASE_URL=mysql://sf4:sf4@mysql/sf4