SQLSTATE\[HY000\] \[1045\] Access denied for user - Rocketeers 8" x-data="{ menu: false, scrolled: false }" x-effect="document.body.style.overflow = menu ? 'hidden' : ''"&gt;

 On this page

 Knowledge
---------

SQLSTATE\[HY000\] \[1045\] Access denied for user
=================================================

### [\#Databases](https://rocketee.rs/index.php/databases)

This MySQL error means the username, password or host your application uses to connect is wrong, or the user has no privileges on the database. It is the most common database connection error there is.

 Published by Mark van Eijk on June 23, 2026 · 1 minute read

1. [About the error](#content-about-the-error)
2. [Why do I see this error](#content-why-do-i-see-this-error)
3. [Solution](#content-solution)

[\#](#content-about-the-error "Permalink")About the error
---------------------------------------------------------

In a Laravel application the full message reads something like:

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

```

`using password: YES` means a password was sent but rejected. `using password: NO` means no password was sent at all, often a sign the value is empty in your config.

[\#](#content-why-do-i-see-this-error "Permalink")Why do I see this error
-------------------------------------------------------------------------

MySQL refused the login. There are only a handful of reasons:

- The username or password is wrong.
- The user exists but is not allowed to connect from this host (`'user'@'localhost'` versus `'user'@'%'`).
- The user has no privileges granted on the target database.
- Your application is reading the wrong credentials, an old `.env`, a cached config, or the wrong environment.

[\#](#content-solution "Permalink")Solution
-------------------------------------------

First, confirm the credentials in your `.env` are correct:

 ```
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=my_app
DB_USERNAME=forge
DB_PASSWORD=secret

```

Test those exact values directly against MySQL to rule out the application entirely:

 ```
mysql -u forge -p -h 127.0.0.1 my_app

```

If that fails too, the problem is in MySQL, not Laravel. Create or fix the user and grant it access:

 ```
CREATE USER 'forge'@'localhost' IDENTIFIED BY 'secret';
GRANT ALL PRIVILEGES ON my_app.* TO 'forge'@'localhost';
FLUSH PRIVILEGES;

```

Note the host part. A user created as `'forge'@'localhost'` cannot connect over TCP to `127.0.0.1`, MySQL treats those as different hosts. If your app connects via `127.0.0.1`, grant access to `'forge'@'127.0.0.1'` (or `'%'` for any host).

If the direct `mysql` login works but Laravel still fails, your application is reading stale config. Clear it:

 ```
php artisan config:clear

```

A cached config (`php artisan config:cache`) freezes whatever values were present at cache time, so re-run it after changing the `.env`. See [environment variables in Laravel](/environment-variables-laravel) for how that loading works.

### Subscribe to our newsletter

Do you want to receive regular updates with fresh and exclusive content to learn more about web development, hosting, security and performance? Subscribe now!

  Fill in your email address to receive updates  Subscribe 

#### Related articles

[Stream MySQL backup directly to S3 bucket](https://rocketee.rs/index.php/stream-mysql-backup-s3-bucket)
--------------------------------------------------------------------------------------------------------

This MySQL error means the username, password or host your application uses to connect is wrong, or the user has no privileges on the database. It is the most common database connection error there is.

[Read more →](https://rocketee.rs/index.php/stream-mysql-backup-s3-bucket)

[Export MySQL database using command line](https://rocketee.rs/index.php/export-database-mysql-command-line)
------------------------------------------------------------------------------------------------------------

This MySQL error means the username, password or host your application uses to connect is wrong, or the user has no privileges on the database. It is the most common database connection error there is.

[Read more →](https://rocketee.rs/index.php/export-database-mysql-command-line)
