Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Docker-PHP/MySQL-PHP\u network\u getaddress:getaddrinfo失败:名称或服务未知_Mysql_Docker_Symfony_Docker Compose - Fatal编程技术网

Docker-PHP/MySQL-PHP\u network\u getaddress:getaddrinfo失败:名称或服务未知

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

我有以下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=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