code-8
code-8

Reputation: 58642

SQLSTATE[HY000] [1045] Access denied for user 'username'@'localhost' (using password: YES)

In my Ubuntu VM, I kept getting

SQLSTATE[HY000] [1045] Access denied for user 'username'@'localhost' (using password: YES)


update

I have configured my database like this in my .env file

DB_HOST=45.55.88.57
DB_DATABASE=b-prod
DB_USERNAME=root
DB_PASSWORD=*********
UNIX_SOCKET=/var/run/mysqld/mysqld.sock

It works perfectly.


But when I use

DB_HOST=45.55.88.57
DB_DATABASE=b-prod
DB_USERNAME=b <----------------------------------------------
DB_PASSWORD=*********
UNIX_SOCKET=/var/run/mysqld/mysqld.sock

I didn't work.

What else I should look into to prevent this ?


I have a feeling that I have the wrong password.

How do I test my database password ? DB_PASSWORD=********* ?


This is all user I have

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)

Upvotes: 6

Views: 85208

Answers (7)

Omkar Ghurye
Omkar Ghurye

Reputation: 393

  1. Make sure the "database user" has all the privileges of the database (and don't forget to import the SQL file).

  2. Edit the Database credentials in .env file and make sure to add the quotes

    DB_DATABASE="dbname"

    DB_USERNAME="dbusername"

    DB_PASSWORD="dbpassword"

  3. Run the following commands

    1. composer install

    2. php artisan config:clear

    3. php artisan cache:clear

  4. Browse the URL : "http://localhost/Foldername/" or "http://yourdomain.com"

  5. Done

Upvotes: 0

Najathi
Najathi

Reputation: 3015

I'm also faced this issue. ENV Variable should be with in the double quotes When we used complex characters of string on .env file. Such as passwords, secrets, key and so on.

DB_PASSWORD="FDXSCHVBGFFUOVIDVKTFUVIF++++++****"

please first check this scenario.

Thank you..

Upvotes: 2

Kristof
Kristof

Reputation: 11

I had the same issue, trying to install Matomo on my localhost. I thought it was my MySQL configuration but it seems it was my adblockers and adtrackers plugins in my browser (Opera). Once deactivated, it worked fine. I hope I could help... Good luck !

Upvotes: 1

Toeur Tenh
Toeur Tenh

Reputation: 71

check database port if you use wamp, login phpadmin and see Server: MySQL on top of the page.

Upvotes: 0

Annymosse
Annymosse

Reputation: 61

I think your problem is with your database and not with 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)

Hopefully this can help.

Upvotes: 0

user3161153
user3161153

Reputation: 41

This file is caching some data like database configurations \bootstrap\cache\config.php. Either delete it or update it with new data.

Upvotes: 0

Jo&#227;o Mantovani
Jo&#227;o Mantovani

Reputation: 2398

The solution:

Sometimes when you change your .env, the configs don't refresh without clear cache or restarting the server.

The error message are:

SQLSTATE[HY000] [1045] Access denied for user 'forge'@'localhost' (using password: YES)

The database are trying to get the information from the "cached" .env configuration, you should try:

php artisan config:clear

if not solve, restart your server.

[Edit] Another NON RECOMMENDED option:

  • Go to your config\database.php
  • remove the .env configuration

And set your own credentials

'mysql' => [
            'host' => '45.55.88.77',
            'database' => 'prod',
            'username' => 'forge',
            'password' => '*********',
        ],

Upvotes: 15

Related Questions