Authentication plugin “caching_sha2_password” is not supported


I am trying to connect to a MySQL server with python connector. I created a new user lcherukuri with the authentication plugin mysql_native_password.

But I got the error

mysql.connector.errors.NotSupportedError: Authentication plugin "caching_sha2_password" is not supported

Can someone help me?

import mysql.connector

cnx = mysql.connector.connect(user="lcherukuri", password="password",

enter image description here

Answer rating: 270

I had the same problem and passing auth_plugin="mysql_native_password" did not work, because I accidentally installed mysql-connector instead of mysql-connector-python (via pip3). Just leaving this here in case it helps someone.

Answer rating: 110

Per Caching SHA-2 Pluggable Authentication

In MySQL 8.0, caching_sha2_password is the default authentication plugin rather than mysql_native_password.

You"re using mysql_native_password, which is no longer the default. Assuming you"re using the correct connector for your version you need to specify the auth_plugin argument when instantiating your connection object

cnx = mysql.connector.connect(user="lcherukuri", password="password",
                              host="", database="test",

From those same docs:

The connect() method supports an auth_plugin argument that can be used to force use of a particular plugin. For example, if the server is configured to use sha256_password by default and you want to connect to an account that authenticates using mysql_native_password, either connect using SSL or specify auth_plugin="mysql_native_password".

Answer rating: 59

This question is already answered here and this solution works.

caching sha2 password is not supported mysql

Just try this command :

pip install mysql-connector-python