Согласно разрешению этого вопроса ...
Что делает брандмауэр Symfony так долго?
... пытаюсь поменять в файле .env
DATABASE_URL=mysql://root:root@localhost/project
к
DATABASE_URL=mysql://root:[email protected]/project
для достижения лучшей производительности.
Но тут появляется ошибка:
An exception occurred in driver: SQLSTATE[HY000] [2002] Connection refused
Uncaught PHP Exception Doctrine\DBAL\Exception\ConnectionException: "An exception occurred in driver: SQLSTATE[HY000] [2002] Connection refused" at /Users/work/project/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/AbstractMySQLDriver.php line 112
Я протестировал 127.0.0.1:3306 и после этого очистил кеш, но это не решило проблему.
попробуйте заключить адрес в двойные кавычки (как показано в документах), например DATABASE_URL = "mysql://root:[email protected]:3306/project" (и очистить кеш) PS: Эта строка работала раньше?
Нет, это тоже не работает. Единственное, что действительно работает, - это DATABASE_URL=mysql://root:root@localhost/project. Вы уверены, что это правильный порт?
Я не могу знать, какой порт вы используете для mysql :-) на самом деле я написал «попробуйте добавить порт использовал» (3306 - это значение по умолчанию для локального разработчика, например, XAMPP.)
Ах да, порт был неправильным. Это другой номер. Но он все равно не работает ... Думаю, что номер 127.0.0.1 тоже, наверное, неправильный
Возможно, пользователю root разрешено использовать только localhost. Посмотрите разрешение пользователя в phpmyadmin
По этому поводу возникает довольно много вопросов. Какое значение имеет ваш параметр bind_address в my.cnf. А на что ваш компьютер разрешает localhost?
Кроме того, этот ответ serverfault.com/a/845155/145904 объясняет, как с точки зрения MySQL localhost и 127.0.0.1 могут быть разными, независимо от конфигурации DNS ...






Проверьте права пользователя самой базы данных, вашему пользователю может быть разрешен доступ только через localhost.
SELECT * FROM mysql.user where user = '<username>';
проверьте столбец хоста. Если вы вернете только одну строку с хостом localhost, вы можете добавить другую с теми же данными, но для хоста 127.0.0.1
CREATE USER '<username>'@'127.0.0.1';
SET PASSWORD FOR '<username>'@'localhost' = PASSWORD('<password>');
FLUSH PRIVILEGES;
Sql не в моей голове, вам может потребоваться дважды проверить его.
попробуйте добавить используемый номер порта, например
127.0.0.1:3306, и очистить кеш.