[エラー][MySQL][python]Authentication plugin'caching_sha2_password' is not supported


エラーメッセージ
Traceback (most recent call last):
  File "D:\connect_mysql.py", line 6, in <module>
    passwd="password",
  File "D:\Ana\envs\tf\lib\site-packages\mysql\connector\__init__.py", line 179, in connect
    return MySQLConnection(*args, **kwargs)
  File "D:\Ana\envs\tf\lib\site-packages\mysql\connector\connection.py", line 95, in __init__
    self.connect(**kwargs)
  File "D:\Ana\envs\tf\lib\site-packages\mysql\connector\abstracts.py", line 716, in connect
    self._open_connection()
  File "D:\Ana\envs\tf\lib\site-packages\mysql\connector\connection.py", line 210, in _open_connection
    self._ssl)
  File "D:\Ana\envs\tf\lib\site-packages\mysql\connector\connection.py", line 142, in _do_auth
    auth_plugin=self._auth_plugin)
  File "D:\Ana\envs\tf\lib\site-packages\mysql\connector\protocol.py", line 102, in make_auth
    auth_data, ssl_enabled)
  File "D:\Ana\envs\tf\lib\site-packages\mysql\connector\protocol.py", line 58, in _auth_response
    auth = get_auth_plugin(auth_plugin)(
  File "D:\Ana\envs\tf\lib\site-packages\mysql\connector\authentication.py", line 191, in get_auth_plugin
    "Authentication plugin '{0}' is not supported".format(plugin_name))
mysql.connector.errors.NotSupportedError: Authentication plugin 'caching_sha2_password' is not supported

環境
  • Windows 10
  • MySQL 8.9
  • Python 3.6

  • ぜんいんPythonで私のMySQLデータベースに接続するつもりですが、以上のエラーが発生しました.なぜなら、MySQL 8.0以降、デフォルトのアイデンティティ認証はcaching_sha2_passwordであり、mysql_native_passwordではないからである.
    結果
    1つのパラメータauth_pluginを複数入力すればよい.
    import mysql.connector
    
    db = mysql.connector.connect(
    	host='host', 
    	user='user', 
    	passwd='password', 
    	# Important!!!
    	auth_plugin='mysql_native_password'
    	# Important!!!
    )
    

    Reference
  • Ben. (May 27, 2018). Authentication plugin ‘caching_sha2_password’ is not supported. Retrieved from https://stackoverflow.com/questions/50557234/authentication-plugin-caching-sha2-password-is-not-supported