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

Flask连接MySQL报caching_sha2_password插件无法加载错误如何解决

错误原因

该报错是MySQL 8.0+版本的兼容性问题:MySQL 8.0之后默认将caching_sha2_password作为用户认证插件,而你当前使用的MySQLdb(mysqlclient)驱动不支持该认证方式,因此触发连接失败。

前置操作:修正代码语法错误

你提供的代码存在两处笔误和一处规范问题,先修正后再执行后续解决方案:

class Website(db.Model):
    # 补充必填主键字段,SQLAlchemy模型必须定义主键
    id = db.Column(db.Integer, primary_key=True)
    username = db.Column(db.String(200), nullable=False) # 补全缺失的闭合括号
    password = db.Column(db.String(500), nullable=False) # 修正拼写错误的字段名
解决方案(任选其一即可)
  • 方案1:修改指定用户的认证插件为兼容旧版
    登录MySQL命令行工具,依次执行以下SQL语句:
    ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'Mudit@2008';
    FLUSH PRIVILEGES;
    
    执行完成后重启MySQL服务,即可正常连接。
  • 方案2:更换支持新认证插件的驱动
    卸载原有mysqlclient,安装pymysql驱动:
    pip uninstall mysqlclient && pip install pymysql
    同时修改数据库连接配置的URI前缀:
    app.config['SQLALCHEMY_DATABASE_URI'] = "mysql+pymysql://root:Mudit@2008@localhost/sys"
    
  • 方案3:修改MySQL全局默认认证插件
    打开MySQL配置文件(Windows为my.ini,Linux/macOS为my.cnf),在[mysqld]配置段下添加:
    default_authentication_plugin=mysql_native_password
    
    保存后重启MySQL服务即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 20:09:04