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

Flask-SQLAlchemy升级后MySQL 1045权限拒绝问题求助

Flask-SQLAlchemy/SQLAlchemy升级引发MySQL权限认证失败问题

问题背景

升级Flask项目依赖后,执行flask db upgrade等数据库迁移命令时触发以下权限错误:

sqlalchemy.exc.ProgrammingError:
   (mysql.connector.errors.ProgrammingError) 1045 (28000):
   Access denied for user 'my_user'@'localhost'
   (using password: YES)

本次升级的依赖版本变更:

  • Flask: 2.0.2 -> 2.3.2
  • Flask-SQLAlchemy: 2.4.3 -> 3.0.3
  • Flask-Migrate: 2.5.3 -> 4.0.4
  • mysql-connector-python: 8.0.26 -> 8.0.33

已完成的排查步骤

已排除数据库配置及环境本身的问题,排查项包括:

  • 通过mysql -u my_user -p可正常登录MySQL终端并操作数据库
  • 确认数据库URI格式正确:"mysql+mysqlconnector://my_user:my_password@localhost/my_db"
  • 尝试URL编码密码特殊字符、更换无特殊字符密码并刷新MySQL权限,问题未解决
  • 确认本机无其他MySQL实例运行
  • 验证MySQL端口为3306,尝试在URI中显式指定端口,问题依旧
  • 确认MySQL版本为8.0.33(与连接器版本匹配),并重启MySQL服务
  • 确认用户权限配置正确,可手动创建数据库表
  • 创建新的全权限测试用户,问题仍存在

问题定位结果

通过逐步回滚依赖版本排查,确认问题源于以下至少一项升级:

  • Flask-SQLAlchemy 2.5.1 -> 3.0.2(无法进一步细分到3.0.0或3.0.1,受其他问题限制)
  • SQLAlchemy 1.4.48 -> 2.x

注:保留Flask-SQLAlchemy 2.5.1和SQLAlchemy 1.4.48时,单独升级Flask、Flask-Migrate及mysql-connector-python至更高版本,flask db upgrade可正常执行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 04:33:22