4
votes

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)
5
Did you GRANT permissions? Once granted, did you FLUSH privileges?Jay Blanchard
Try to login directly to say phpmyadmin directly using your credentials. Also, your host is not in the error. Your host is 45.55.88.57 but your error reads @localhost. If you just changed your config, do php artisan config:clearEddyTheDove
@JayBlanchard : How can log-in to mysql with as root ? I tried mysql -u root -p I kept getting ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)cyb3rZ
How do I know my root mysql password guys ?cyb3rZ
Usually you set your root password whilst installing mysql / your server. Default could be just root as username and an empty password. How did you setup this VM?Björn

5 Answers

11
votes

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' => '*********',
        ],
1
votes

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 !

0
votes

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

0
votes

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.

0
votes

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