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

Python程序插入MySQL数据时caching_sha2_password认证不支持问题咨询

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

嘿,这个问题我之前帮不少开发者踩过坑,咱们直接说根因和解决方案:

问题本质

MySQL 8.0及以后的版本,默认把caching_sha2_password设为了用户认证的默认插件——这是个更安全的认证方式,但旧版本的mysql-connector-python(比如2.1.x及更早)确实不支持这个插件,这就是你报错的核心原因。你说修改密码类型不允许,大概率是命令没写对,不是MySQL不让改。

三种解决方案,按推荐优先级排序:

1. 升级mysql-connector-python到最新版本(最推荐)

这是最省心的方案,新版的MySQL Python驱动已经完全支持caching_sha2_password认证,不需要改任何MySQL配置。直接在终端执行:

pip install --upgrade mysql-connector-python

升级完成后,再运行你的插入数据代码,应该就能正常连接了。

2. 修改MySQL用户的认证插件为mysql_native_password

如果你暂时不想升级驱动,或者有其他依赖限制,可以把目标用户的认证方式改成旧版的mysql_native_password:

  • 先用root或有管理员权限的用户登录MySQL服务器;
  • 执行以下SQL命令(替换成你的用户名、主机和密码):
ALTER USER '你的用户名'@'你的主机' IDENTIFIED WITH mysql_native_password BY '你的密码';

比如你的用户是testuser,允许本地连接,密码是123456,命令就是:

ALTER USER 'testuser'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';
  • 最后刷新权限生效:
FLUSH PRIVILEGES;

3. 连接时手动指定认证插件(临时测试用)

如果升级驱动后还是有兼容性问题,或者只是临时调试,可以在Python的连接配置里强制指定使用mysql_native_password插件:

import mysql.connector
from mysql.connector import Error

try:
    conn = mysql.connector.connect(
        host='localhost',
        database='你的数据库名',
        user='你的用户名',
        password='你的密码',
        auth_plugin='mysql_native_password'  # 手动指定认证插件
    )
    if conn.is_connected():
        print("成功连接到MySQL")
        # 这里写你的插入数据代码
        cursor = conn.cursor()
        insert_query = "INSERT INTO your_table (col1, col2) VALUES (%s, %s)"
        data = ("值1", "值2")
        cursor.execute(insert_query, data)
        conn.commit()
        print("数据插入成功")
except Error as e:
    print(f"连接或操作出错:{e}")
finally:
    if conn.is_connected():
        cursor.close()
        conn.close()
        print("连接已关闭")

小提醒

caching_sha2_password是MySQL官方推荐的安全认证方式,所以优先建议用方案1升级驱动,尽量不要长期依赖mysql_native_password。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 04:23:41