[报错] [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

后果

多传入一个参数auth_plugin即可:

import mysql.connector

db = mysql.connector.connect(
	host='host', 
	user='user', 
	passwd='password', 
	# Important!!!
	auth_plugin='mysql_native_password'
	# Important!!!
)

Reference

  1. 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
发布了40 篇原创文章 · 获赞 84 · 访问量 5万+

猜你喜欢

转载自blog.csdn.net/xovee/article/details/92412283