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). После деактивации он работал нормально. Надеюсь, я смогу помочь... Удачи!

  1. Убедитесь, что «пользователь базы данных» имеет все привилегии базы данных (и не забудьте импортировать файл SQL).

  2. Отредактируйте учетные данные базы данных в файле .env и обязательно добавьте кавычки.

    DB_DATABASE="имя_базы_данных"

    DB_USERNAME="dbusername"

    DB_PASSWORD="пароль БД"

  3. Выполните следующие команды

    1. установка композитора

    2. Конфигурация php-мастера: очистить

    3. Кэш php-мастера: очистить

  4. Просмотрите URL-адрес: «http://localhost/Foldername/» или «http://yourdomain.com».

  5. Сделанный

Этот файл кэширует некоторые данные, такие как конфигурации базы данных. \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)

Надеюсь, это поможет.

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