Я следил за этим документация чтобы добавить доктрину в мой проект 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)
Даже я сменил пользователя и пароль, он все равно его не распознает. Любая идея, почему это не работает? Я буду признателен .
Нет, сэр . у меня его нет.
Сообщение об ошибке несовместимо с добавленной вами строкой конфигурации! Я думаю, что это плохо, чтобы использовать root. Создайте пользователя и предоставьте ему «права администратора». У вас есть база данных с именем «db_school» в вашей СУБД? У вас есть пользователь с именем «db_user» в вашей СУБД?
Нет, сэр ! У меня их нет. У меня просто есть корень как имя пользователя. И база данных не существует
у вашего корневого имени пользователя есть пароль? если да, попробуйте: DATABASE_URL = "mysql://root:[email protected]:3306/db_school" и доктрину php bin/console:database:create
Нет, сэр, у него нет пароля




Я думаю, вам нужно создать пользователя «db_user» с паролем в вашей СУБД. Затем предоставьте ему права «Администрирование». Затем исправьте строку конфигурации базы данных .env:
DATABASE_URL = "mysql://db_user:[email protected]:3306/db_name"
Я только что попробовал ваше предложение, но у меня все та же проблема:
Найдите строку «db_user» во всех файлах проекта и проверьте, существует ли она только там, где она должна существовать.
Я искал, но его не существует. Я не знаю, откуда взялась проблема
Попробуйте использовать тот же синтаксис, что и у вас есть пароль, просто ничего не вводите там, где должен быть пароль:
DATABASE_URL = "mysql://root:@127.0.0.1:3306/db_school"
Как это объясняется здесь: https://github.com/doctrine/DoctrineBundle/issues/746#issuecomment-351788298
Этот метод, кажется, не работает для меня, я не знаю, почему, но он работал следующим образом:
composer require doctrine
Затем я запускаю это:
composer require orm
затем я перешел к своему файлу .env и обнаружил, что синтаксис моей базы данных сгенерирован автоматически, и все работает нормально.
Также я удалил другие процессоры sql, которые были открыты на моем компьютере (я также установил сервер sql + wamp, что объясняет конфликт, который у меня есть), а затем снова открыл свой сервер wamp, и все работает нормально.
У вас есть файл
.env.local, который может переопределить эту переменную?