【问题标题】:Sf3 Docker-compose : [2002] Connection refusedSf3 Docker-compose:[2002] 连接被拒绝
【发布时间】:2017-11-30 13:51:36
【问题描述】:

我尝试使用我的 docker 容器在 symfony 中更新我的架构。

有一个 pdo 异常:

[PDO异常]
SQLSTATE[HY000] [2002] 连接被拒绝

我的 docker-compose 与 phpmyadmin 一起工作:

version: "3"
services:
   web:
       image: nginx:latest
       ports:
           - "3636:80"
       volumes:
           - .:/code
           - ./docker/nginx/default.conf:/etc/nginx/conf.d/default.conf
       links:
           - php

    php:
        build: ./docker/engine
        links:
            - db:mysql
        volumes:
           - .:/code
    db:
        image: mysql:5.7
        ports:
            - "3306:3306"
        expose:
            - "3306"
        volumes:
            - db_data:/var/lib/mysql
        environment:
            MYSQL_ROOT_PASSWORD: root
            MYSQL_USER: xxx
            MYSQL_PASSWORD: xxx
            MYSQL_DATABASE: xxx

     phpmyadmin:
        image: phpmyadmin/phpmyadmin
        links:
            - db:mysql
        ports:
            - 76:80
        environment:
            MYSQL_USERNAME: root
            MYSQL_ROOT_PASSWORD: root

volumes:
    db_data:

我的参数.yml:

 database_host: db
 database_port: 3636
 database_name: xxx
 database_user: xxx
 database_password: xxx

我不明白了! 谢谢你的帮助

【问题讨论】:

    标签: mysql symfony docker-compose


    【解决方案1】:

    数据库容器暴露和使用的端口是 3306。 所以在parameters.yml试试

     database_port: 3306
    

    而不是

     database_port: 3636
    

    希望有帮助

    【讨论】:

    • 天哪**! Thx 真的很有帮助
    【解决方案2】:

    您的 nginx 在 3636 上工作,db 在 3306 上工作,如果您的代码位于 Docker 中,请将您的 parameters.yml 中的 database_port 从 3636 更改为 3306 - 删除

            ports:
            - "3306:3306"
    

    steel 仅在 Docker 内部为 MySQL 和其他服务公开 3306。

    【讨论】:

      猜你喜欢
      • 2018-10-23
      • 2021-10-12
      • 2016-03-08
      • 2017-08-05
      • 2020-09-08
      • 1970-01-01
      • 2020-04-15
      • 2022-10-25
      • 2019-06-06
      相关资源
      最近更新 更多