Исключение в драйвере: SQLSTATE[HY000] [1045] Доступ запрещен для пользователя 'db_user'@'localhost' (используется пароль: YES)

Я следил за этим документация чтобы добавить доктрину в мой проект Symfony (v4.2). Но когда доктрина установлена, она не добавляет эту строку в мой проект (в моем файле .env, как указано в документе):

DATABASE_URL = "mysql://db_user:[email protected]:3306/db_name"

Поэтому я добавил его вручную следующим образом:

DATABASE_URL = "mysql://[email protected]:3306/db_school"

и использовал эту команду для создания базы данных:

php bin/console doctrine:database:create

и это дает мне эту ошибку:

In AbstractMySQLDriver.php line 93: An exception occurred in driver: SQLSTATE[HY000] [1045] Access denied for user 'db_user'@'localhost' (using password: YES)

In PDOConnection.php line 31: SQLSTATE[HY000] [1045] Access denied for user 'db_user'@'localhost' (using password: YES)
In PDOConnection.php line 27: SQLSTATE[HY000] [1045] Access denied for user 'db_user'@'localhost' (using password: YES)

Даже я сменил пользователя и пароль, он все равно его не распознает. Любая идея, почему это не работает? Я буду признателен .

У вас есть файл .env.local, который может переопределить эту переменную?

MakG 15.04.2019 13:01

Нет, сэр . у меня его нет.

hafida Bo 15.04.2019 13:04

Сообщение об ошибке несовместимо с добавленной вами строкой конфигурации! Я думаю, что это плохо, чтобы использовать root. Создайте пользователя и предоставьте ему «права администратора». У вас есть база данных с именем «db_school» в вашей СУБД? У вас есть пользователь с именем «db_user» в вашей СУБД?

Nicolas 15.04.2019 13:14

Нет, сэр ! У меня их нет. У меня просто есть корень как имя пользователя. И база данных не существует

hafida Bo 15.04.2019 13:16

у вашего корневого имени пользователя есть пароль? если да, попробуйте: DATABASE_URL = "mysql://root:[email protected]:3306/db_sc‌​hool" и доктрину php bin/console:database:create

William Bridge 15.04.2019 14:58

Нет, сэр, у него нет пароля

hafida Bo 15.04.2019 16:21
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Symfony Station Communiqué - 17 февраля 2023 г
Symfony Station Communiqué - 17 февраля 2023 г
Это коммюнике первоначально появилось на Symfony Station , вашем источнике передовых новостей Symfony, PHP и кибербезопасности.
Управление ответами api для исключений на Symfony с помощью KernelEvents
Управление ответами api для исключений на Symfony с помощью KernelEvents
Много раз при создании api нам нужно возвращать клиентам разные ответы в зависимости от возникшего исключения.
5
6
25 418
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Я думаю, вам нужно создать пользователя «db_user» с паролем в вашей СУБД. Затем предоставьте ему права «Администрирование». Затем исправьте строку конфигурации базы данных .env:

DATABASE_URL = "mysql://db_user:[email protected]:3306/db_name"

Я только что попробовал ваше предложение, но у меня все та же проблема:

hafida Bo 15.04.2019 13:31

Найдите строку «db_user» во всех файлах проекта и проверьте, существует ли она только там, где она должна существовать.

Nicolas 15.04.2019 15:42

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

hafida Bo 15.04.2019 16:32

Попробуйте использовать тот же синтаксис, что и у вас есть пароль, просто ничего не вводите там, где должен быть пароль:

DATABASE_URL = "mysql://root:@127.0.0.1:3306/db_school"

Как это объясняется здесь: https://github.com/doctrine/DoctrineBundle/issues/746#issuecomment-351788298

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

Этот метод, кажется, не работает для меня, я не знаю, почему, но он работал следующим образом:

  • Поэтому я использовал Flex для установки доктрины:

composer require doctrine

Затем я запускаю это:

composer require orm

  • затем я перешел к своему файлу .env и обнаружил, что синтаксис моей базы данных сгенерирован автоматически, и все работает нормально.

  • Также я удалил другие процессоры sql, которые были открыты на моем компьютере (я также установил сервер sql + wamp, что объясняет конфликт, который у меня есть), а затем снова открыл свой сервер wamp, и все работает нормально.

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