Отказ соединения Mysql в докере

Итак, я создаю новый проект Symfony 4, но не могу заставить mysql подключиться к моему докеру mysql. какую часть я делаю неправильно?

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

вот мой docker-compose.yml для mysql.

mysql:
        image: mysql:8
        container_name: sf4_mysql
        volumes:
            - .docker/data/db:/var/lib/mysql
        command:
            - "--default-authentication-plugin=mysql_native_password"
            - "--lower_case_table_names=1"        
        environment:
            MYSQL_ROOT_PASSWORD: root
            MYSQL_DATABASE: sf4
            MYSQL_USER: sf4
            MYSQL_PASSWORD: sf4

Вот URL-адрес mysql в моем .env DATABASE_URL=mysql://sf4:sf4@sf4_mysql:3306/sf4

каждый раз, когда я делаю ./bin/console doctrine:database:create, в соединении отказывается.

просто пытаюсь создать базу данных.

контроллер

class HospitalAdminController extends AbstractController
{
    /**
     * @Route("/admin/hospital/new")
     */
    public function new(EntityManagerInterface $em)
    {
        $hospital = new Hospital();
        $hospital->setName('Example Hospital')
            ->setPhone(8175831483)
            ->setAddress('123 Avenue');

        $em->persist($hospital);
        $em->flush();


        return new Response(sprintf(
            'Hiya! New Hospital id: #%d phone:%s address%s',
            $hospital->getId(),
            $hospital->getPhone(),
            $hospital->getAddress()

        ));

}
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
0
75
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вам нужно открыть порт mysql. по умолчанию 3306. см. порт публикации

и другие примеры, характерные для mysql-8 на докере

Для проверки того, работает ли mysql, хорошо запустить внутри терминала его клиента, чтобы вы минимизировали потенциальный источник ошибок в самой базе данных, не включая потенциальные ошибки в php.

вы знаете, почему, когда я флеш соединение отказывается? @Джиммикс

user7401552 27.05.2019 22:15

@Chris2kus, что именно вы подразумеваете под флешем?

Jimmix 27.05.2019 22:18

Я пытаюсь вызвать это (я обновил свой исходный пост, чтобы показать свой контроллер. Я получаю сообщение об ошибке. В драйвере произошло исключение: SQLSTATE [HY000] [2002] В соединении отказано @Jimmix

user7401552 27.05.2019 22:27

проверьте, действительно ли вы используете пользователя admin/root или другому пользователю, которого вы используете, разрешено создавать базу данных в MySQL. Другое дело — создать второй контейнер с клиентом mysql и попытаться создать любую базу данных с помощью консоли. Если все идет хорошо в консоли mysql, вы знаете, что проблема в php. если нет, то что-то не так с mysql.

Jimmix 27.05.2019 22:37

Я смог создать базу данных с пользователем root, после того как я запустил ./bin/console doctrine:database:create, он создал базу данных. однако, когда я пытаюсь написать, он отказывается от соединения с теми же настройками @Jimmix

user7401552 27.05.2019 22:42

@Chris2kus не повезло, я не могу тебе помочь. Опубликуйте его как новый вопрос, в точности с используемой конфигурацией и полученным сообщением об ошибке.

Jimmix 27.05.2019 22:47

Другие вопросы по теме