MySQL - SQLSTATE[HY000] [2054] The server requested authentication method unknown to the client (solution)
The default MySQL 8 auth plugin is auth_socket
, which causes the error "SQLSTATE[HY000] [2054] The server requested authentication method unknown to the client" when an application is attempting to log in to the database with a password. Let's go through the steps to fix this.
Step 1
Login to the mysql
server in sudo mode as the root user and supply any required passwords.
sudo mysql -u root -p
Step 2
Now run the following ALTER USER
command, replacing root with your database user and password if your password.
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
Now run:
FLUSH PRIVILEGES;
Now exit the MySQL server:
exit;
Step 3
You may need to restart the mysql services for the changes to take effect:
sudo service mysql restart