You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Python Connector连接MySQL报错:不支持caching_sha2_password插件

解决MySQL Connector认证插件不支持的问题

嘿,我来帮你搞定这个认证错误!虽然你创建了使用mysql_native_password的用户,但还是遇到caching_sha2_password的报错,大概率是这几个原因,咱们一步步排查:

1. 确认用户的认证插件确实设置正确

有时候创建用户时如果没明确指定认证插件,MySQL 8.0+版本会默认使用caching_sha2_password。你可以先登录MySQL服务器,执行下面的命令检查用户的认证插件:

SELECT user, host, plugin FROM mysql.user WHERE user = 'lcherukuri';

如果结果里plugin列不是mysql_native_password,重新创建用户并明确指定插件:

-- 删除旧用户(如果存在)
DROP USER IF EXISTS 'lcherukuri'@'127.0.0.1';
-- 创建带指定认证插件的用户
CREATE USER 'lcherukuri'@'127.0.0.1' IDENTIFIED WITH mysql_native_password BY 'password';
-- 授予test数据库的权限
GRANT ALL PRIVILEGES ON test.* TO 'lcherukuri'@'127.0.0.1';
-- 刷新权限
FLUSH PRIVILEGES;

注意:这里用127.0.0.1是因为你的代码里用的是这个主机地址,它和localhost对应不同的连接方式(TCP vs socket),必须和代码中的主机参数匹配。

2. 在Python连接代码中显式指定认证插件

即使用户设置正确,有时候MySQL Connector可能还是会尝试用默认的认证方式,你可以在connect()方法里显式指定auth_plugin参数强制使用mysql_native_password:

import mysql.connector

cnx = mysql.connector.connect(
    user='lcherukuri',
    password='password',
    host='127.0.0.1',
    database='test',
    auth_plugin='mysql_native_password'
)
cnx.close()

3. 检查mysql-connector-python版本

如果你的连接器版本太旧,可能对新的认证插件支持有问题,建议更新到最新版本:

pip install --upgrade mysql-connector-python

按照这几步操作,应该就能解决这个认证错误啦!

内容的提问来源于stack exchange,提问作者lch

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 07:11:22