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

Python连接MySQL 8.0.11报错:不支持caching_sha2_password插件

解决MySQL 8.0.11与Python 3.6连接时的"caching_sha2_password不支持"错误

嘿,这个坑我之前踩过!MySQL 8.0开始默认启用了caching_sha2_password这种更安全的认证插件,但你用的Python 3.6搭配的旧版mysql-connector还不支持它,给你几个实用的解决办法:

方法一:修改现有用户的认证方式(最直接)

这是最快解决当前问题的办法,把你的root用户(或目标用户)的认证方式换回旧的mysql_native_password:

  1. 打开MySQL命令行工具,用root账号登录:
    mysql -u root -p
    
  2. 执行下面的SQL语句(记得替换成你的实际密码和用户信息):
    ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的数据库密码';
    FLUSH PRIVILEGES;
    
    要是你的用户不是localhost访问的,把localhost换成对应的主机名或IP就行。

方法二:升级mysql-connector-python版本

新版本的mysql-connector已经支持caching_sha2_password了,直接用pip升级:

pip install --upgrade mysql-connector-python

注意:Python 3.6可以适配mysql-connector-python 8.0以上的版本,升级后再运行你的连接代码应该就能正常工作了。

方法三:修改MySQL默认认证插件(适合新用户)

如果你不想逐个修改用户,也可以让MySQL默认用旧的认证方式,以后新建用户都会自动适配:

  1. 找到Windows下MySQL的配置文件my.ini(一般在MySQL安装目录的根目录,比如C:\Program Files\MySQL\MySQL Server 8.0\my.ini)
  2. 在[mysqld]模块下添加一行:
    default_authentication_plugin=mysql_native_password
    
  3. 重启MySQL服务(可以在Windows服务列表里找到MySQL服务,右键重启)

以上三种方法任选其一都能解决你的报错问题,个人推荐方法一或者方法二,根据你的实际场景选择就行~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 09:54:00