MySQL: Access denied for user ‘test’@’localhost’ (using password: YES) except root user

Do not grant all privileges over all databases to a non-root user, it is not safe (and you already have “root” with that role)

GRANT <privileges> ON database.* TO 'user'@'localhost' IDENTIFIED BY 'password';

This statement creates a new user and grants selected privileges to it.
I.E.:

GRANT INSERT, SELECT, DELETE, UPDATE ON database.* TO 'user'@'localhost' IDENTIFIED BY 'password';

Take a look at the docs to see all privileges detailed

EDIT: you can look for more info with this query (log in as “root”):

select Host, User from mysql.user;

To see what happened

Leave a Comment