> For the complete documentation index, see [llms.txt](https://mariadb.com/docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://mariadb.com/docs/server/reference/error-codes/mariadb-error-codes-1000-to-1099/e1044.md).

# Error 1044: Access denied for user

| Error Code | SQLSTATE | Error                       | Description                                       |
| ---------- | -------- | --------------------------- | ------------------------------------------------- |
| 1044       | 42000    | ER\_DBACCESS\_DENIED\_ERROR | Access denied for user '%s'@'%s' to database '%s' |

## Possible Causes and Solutions

The account has no privileges on the database it tries to use. This happens, for example, with [USE](/docs/server/reference/sql-statements/administrative-sql-statements/use-database.md), with [CREATE DATABASE](/docs/server/reference/sql-statements/data-definition/create/create-database.md), or when you connect with a default database, such as `mariadb -D shop`:

```
USE priv;
ERROR 1044 (42000): Access denied for user 'p'@'localhost' to database 'priv'

CREATE DATABASE newdb;
ERROR 1044 (42000): Access denied for user 'p'@'localhost' to database 'newdb'
```

The server returns the same error for a database that doesn't exist, so that the error doesn't show which databases exist.

To solve the error:

* Check the account's privileges with [SHOW GRANTS](/docs/server/reference/sql-statements/administrative-sql-statements/show/show-grants.md). [CURRENT\_USER()](/docs/server/reference/sql-functions/secondary-functions/information-functions/current_user.md) shows which account the server matched for the session. It can differ from the user name you logged in with, for example when an anonymous account matches first.
* Have an administrator [GRANT](/docs/server/reference/sql-statements/account-management-sql-statements/grant.md) the privileges on the database, for example `GRANT SELECT, INSERT ON shop.* TO 'p'@'localhost'`.
* If the privileges were granted to a [role](/docs/server/security/user-account-management/roles/roles_overview.md), they apply only after you enable the role with [SET ROLE](/docs/server/reference/sql-statements/account-management-sql-statements/set-role.md), or after an administrator makes it your default role with [SET DEFAULT ROLE](/docs/server/reference/sql-statements/account-management-sql-statements/set-default-role.md).

A wrong password or an unknown account gives [error 1045](/docs/server/reference/error-codes/mariadb-error-codes-1000-to-1099/e1045.md) instead, when you connect. Missing privileges on a table give [error 1142](/docs/server/reference/error-codes/mariadb-error-codes-1100-to-1199/e1142.md), and missing global privileges give [error 1227](/docs/server/reference/error-codes/mariadb-error-codes-1200-to-1299/e1227.md).

## See Also

* [Troubleshooting Connection Issues](/docs/server/mariadb-quickstart-guides/mariadb-connection-troubleshooting-guide.md)
* [When access\_denied\_errors status variable is incremented](/docs/server/security/user-account-management/incrementing-of-the-access_denied_errors-status-variable.md)

<sub>*This page is licensed: CC BY-SA / Gnu FDL*</sub>

{% @marketo/form formId="4316" %}
