Generally, this ” Access denied for user ‘username’@’host’ (using password: YES) ” occurs because of one of the following reasons,
- The user tries to access the database with an invalid login username & password
- When there are no privileges for the tried user
- Login access is blocked by hosting server settings
In the first case, you just have to recheck login credentials. If you lost your login password, then you have to reset it. Refer to this guide: MySQL : How to Reset the Root Password
In other cases, we will see how to fix it.
SQL Error (1045) Scenario
In this case ” Access denied for user ‘username’@’host’ (using password: YES) ” error has appeared while connecting SQL server hosted on Webhosting (cPanel) and the user is trying to connect from his local PC.While connecting to an SQL server hosted on your web hosting service provider using database tools like MySQL Workbench or HeidiSQL sometimes the following error may occur
SQL Error (1045) in statement #0: Access denied for user ‘username’@’host’ (using password: YES)
The error message popup screenshot is as follows,
Since this error is also associated with an invalid username and password, some forums suggesting to check login credentials. But in this case, the error is appeared even after entering the correct username and password.
Even if you try to connect MySQL server using different database tools like Workbench, Navicat for MySQL, etc problem will not get solved.
Fixing ” Access denied for user ‘username’@’host’ (using password: YES) error”
In our side troubleshooting, we found that the connection from the outside world is blocked by the server by default for security reasons. This is a normal security provision arranged by a web hosting company to avoid unauthorized access.
To solve this problem, you have to either allow your static IP or give a wildcard ‘%’ entry.
1 Step-1 : Access Remote MySQL from your web hosting cPanel
Log into your web hosting cPanel, and then look for the “Remote MySQL” icon under the database section. It will look like in the given screenshot.
Click on Remote MySQL, it will open the configuration screen.
2 Step-2 : Add access host
From here you have to allow the IP address to access the SQL server from database tools like Workbench, HeidiSQL installed on your local PC.
You have three options here
- add “%“, it is wild card entry it will allow all IPs to access SQL server with login credentials
- add fixed IP (for example: 126.96.36.199), only if you have one
- add IP range if you are using multiple IPs (for example 174.77.92.%.)
Remember Allowing ‘%’ all IP to access DB creates a large security hole, always use strong login credentials.
3 Step 3: Retry connection
After this step, retry connecting. The problem “Access denied for user ‘username” should have been solved. If not check your username and password again and check if your tools are allowed through the firewall.