错误信息
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
- 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