Access denied for user ‘root’@’localhost’ (using password yes) MySQL – Let’s fix
Oops!! Frustrated with ‘Access denied for user ‘root’@’localhost’ (using password yes) in MySQL?
This error may occur due to many reasons which include insufficient privileges for the user to access the database, and when MySQL root password is wrong and so on.
At Bobcares, we often get requests to fix MySQL errors, as a part of our Server Management Services.
Today, let’s see how our Support Engineers fix this MySQL for our customers.
Why does access denied error occurs in MySQL?
This error may occur due to different reasons in different scenarios. Some of them are:
- When a user who doesn’t exist on the MySQL server tries to access the database.
- When there is no privilege for the user.
- If the username or password is wrong.
Today, we’ll discuss in detail how we fix this Access denied for user ‘root’@’localhost’ (using password yes) in MySQL.
How we fix ‘access denied for user ‘root’@’localhost’ (using password yes) in MySQL’?
Let’s see, how we fix this access denied error for our customers in detail.
a. Not able to login
Recently, one of our customers approached us saying that he is getting an error like the one shown below while he is trying to log in to MySQL.
So, our Support Engineers checked in detail and found that the root password is wrong. So, to reset the password we did the following:
1. Initially, we opened /etc/mysql/my.cnf
2. Then we added skip-grant-tables under [mysqld] section.
Here we skipped grant tables as there is no other way to log in.
By skipping the grant table option it allows anyone to log in from anywhere and can do anything on the database.
Note: skip-grant-tables is dangerous, so we will remove this at the end.
3 Then, we restarted the MySQL service using the command below:
service mysql restart
Now MySQL is configured to skip the grant-tables. So, we can log in now.
4. We logged into MySQL using:
mysql -u root
5. Then, we flushed the privileges using:
6. After that, we set a new password using the command below: UPDATE user SET
Password=PASSWORD('my_password') where USER='root'; FLUSH PRIVILEGES;
7. Then, we removed skip-grant-tables from /etc/mysql/my.cnf
8. Finally, we restarted the MySQL service and logged in to MySQL using the new password.
This fixes the error.
b. No global privilege
If there is no global privilege then this error can happen. In such cases, our Engineers add the privilege by:
GRANT ALL PRIVILEGES ON database.* TO 'user'@'localhost';
This fixes the error.
[Need more assistance to fix MySQL Error?- We’re available 24/7.]
In short, this error occurs mainly due to insufficient privileges to the user and can be fixed by granting the privilege. Also, today we discussed in detail how our Support Engineers fix this error for our customers.