SQLSTATE[HY000] [1045] Доступ запрещен для пользователя 'username'@'localhost' (с использованием пароля: YES)
В моей Ubuntu VM я продолжал получать
SQLSTATE[HY000] [1045] Доступ запрещен для пользователя 'username'@'localhost' (с использованием пароля: YES)
Обновить
Я настроил свою базу данных, как это в моем файле.env
DB_HOST=45.55.88.57
DB_DATABASE=b-prod
DB_USERNAME=root
DB_PASSWORD=*********
UNIX_SOCKET=/var/run/mysqld/mysqld.sock
Работает отлично.
Но когда я использую
DB_HOST=45.55.88.57
DB_DATABASE=b-prod
DB_USERNAME=b <----------------------------------------------
DB_PASSWORD=*********
UNIX_SOCKET=/var/run/mysqld/mysqld.sock
Я не работал
Что еще я должен изучить, чтобы предотвратить это?
У меня такое ощущение, что у меня неправильный пароль.
Как проверить пароль моей базы данных? DB_PASSWORD=*********?
Это все, что у меня есть пользователь
mysql> SELECT User,Host FROM mysql.user;
+------------------+-------------+
| User | Host |
+------------------+-------------+
| root | % |
| root | 127.0.0.1 |
| root | 45.55.88.57 |
| root | ::1 |
| root | b |
| b | localhost |
| debian-sys-maint | localhost |
| root | localhost |
+------------------+-------------+
8 rows in set (0.00 sec)
8 ответов
Решение:
Иногда, когда вы меняете.env, конфиги не обновляются без очистки кеша или перезапуска сервера.
Сообщение об ошибке:
SQLSTATE[HY000] [1045] Access denied for user 'forge'@'localhost' (using password: YES)
База данных пытается получить информацию из "кэшированной" конфигурации.env, вам следует попробовать:
php artisan config:clear
Если не решить, перезагрузите сервер.
[Редактировать] Еще один НЕ РЕКОМЕНДУЕМЫЙ параметр:
- Перейти к вашей
config\database.php
- удалить конфигурацию.env
И установите свои собственные учетные данные
'mysql' => [
'host' => '45.55.88.77',
'database' => 'prod',
'username' => 'forge',
'password' => '*********',
],
Я также столкнулся с этой проблемой. Переменная ENV должна быть заключена в двойные кавычки. Когда мы использовали сложные символы строки в файле .env. Например, пароли, секреты, ключ и так далее.
DB_PASSWORD="FDXSCHVBGFFUOVIDVKTFUVIF++++++****"
Пожалуйста, сначала проверьте этот сценарий.
Спасибо..
У меня была такая же проблема, когда я пытался установить Matomo на моем локальном хосте. Я думал, что это моя конфигурация MySQL, но похоже, что это были мои плагины для блокировки рекламы и отслеживания рекламы в моем браузере (Opera). После деактивации он работал нормально. Надеюсь, я смогу помочь... Удачи!
Убедитесь, что «пользователь базы данных» имеет все привилегии базы данных (и не забудьте импортировать файл SQL).
Отредактируйте учетные данные базы данных в файле .env и обязательно добавьте кавычки.
DB_DATABASE="имя_базы_данных"
DB_USERNAME="dbusername"
DB_PASSWORD="пароль БД"
Выполните следующие команды
установка композитора
Конфигурация php-мастера: очистить
Кэш php-мастера: очистить
Просмотрите URL-адрес: «http://localhost/Foldername/» или «http://yourdomain.com».
Сделанный
Этот файл кэширует некоторые данные, такие как конфигурации базы данных. \bootstrap\cache\config.php
, Либо удалите его, либо обновите его новыми данными.
Проверьте набор паролей для базы данных. Добавьте значение # в конце пароля. рассматривать как новую строку в .env.
Проверьте порт базы данных, если вы используете wamp, войдите в phpadmin и посмотрите Server: MySQL вверху страницы.
Я думаю, ваша проблема связана с вашей базой данных, а не с laravel.
mysql> SELECT User,Host FROM mysql.user;
+------------------+-------------+
| User | Host |
+------------------+-------------+
| root | % |
| root | 127.0.0.1 |
| root | 45.55.88.57 |
| root | ::1 |
| root | b |
| b | localhost | <-- must be % not localhost coz you want to access it remotely not locally
| debian-sys-maint | localhost |
| root | localhost |
+------------------+-------------+
8 rows in set (0.00 sec)
Надеюсь, это поможет.