Возникла исключительная ситуация в драйвере: SQLSTATE [HY000] [2002] Соединение отклонено - PullRequest
0 голосов
/ 25 сентября 2018

У меня проблема с docker и symfony для доступа к mysql.

Чтобы попытаться запросить mysql, подключившись к контейнеру php:

docker exec -it symfony_php bash

Затем я выполняю следующую команду:

bin / console doctrine: database: create

Здесь я получаю следующее сообщение об ошибке:

В драйвере возникла исключительная ситуация: SQLSTATE [HY000] [2002] Соединение отклонено

Вот код моего "docker-compose.yml":

version: '3'
services:
    apache:
        container_name: symfony_apache
        build: .docker/apache
        ports:
            - "80:80"
        volumes:
            - .docker/config/vhosts:/etc/apache2/sites-enabled
            - .:/home/www/symfony
        depends_on:
          - php

    mysql:
        container_name: symfony_mysql
        image: mysql
        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:
        container_name: symfony_php
        build: .docker/php
        volumes:
            - .:/home/www/symfony
        depends_on:
            - mysql 

    phpmyadmin:
        container_name: symfony_phpmyadmin
        image: phpmyadmin/phpmyadmin
        ports:
            - "8080:80"
        environment:
            PMA_HOST: mysql
            PMA_PORT: 3306
        links:
            - mysql

Вот код моего .env:

DATABASE_URL = mysql: // root: root@127.0.0.1: 3306 / s4

Ответы [ 2 ]

0 голосов
/ 26 сентября 2018

Вы пытались использовать внутренний идентификатор в качестве хоста mysql?

DATABASE_URL=mysql://root:root@symfony_mysql:3306/s4
DATABASE_URL=mysql://root:root@mysql:3306/s4

Я не думаю, что 127.0.0.1 работает изнутри контейнера.

Вы также можете попробовать использоватьваш «внешний» IP или URL, так как вы уже открыли порт 3306.

0 голосов
/ 25 сентября 2018

Вы пытаетесь подключиться к root:root, но ваш пользователь - sf4.Попробуйте:

DATABASE_URL=mysql://sf4:sf4@127.0.0.1:3306/s4

Также попробуйте подключиться из командной строки, чтобы убедиться, что он действительно работает.

Редактировать: Просто понял, что Connection refused обычно, когда он не работает, неошибка пользователя / пароля.Убедитесь, что MySQL работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...