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

Flask使用SQLAlchemy连接MySQL报1045用户访问被拒绝如何解决

MySQL 1045访问拒绝问题排查方案
  • 首先本地验证账号密码有效性
    执行命令 mysql -u taran -p,输入密码1234尝试直接登录MySQL,若无法登录说明账号密码配置本身有误,和代码逻辑无关。
  • 确认用户权限配置正确
    登录MySQL后执行命令 SHOW GRANTS FOR 'taran'@'localhost';,检查该用户是否拥有flask数据库的操作权限,若无权限执行以下语句授权:
    GRANT ALL PRIVILEGES ON flask.* TO 'taran'@'localhost';
    FLUSH PRIVILEGES;
    
    注意创建用户时必须指定host为localhost,若创建的是taran@%这类允许远程访问的用户,本地连接无法匹配,需重新创建对应本地用户。
  • 修正数据库连接串配置
    部分Python环境默认缺少MySQLdb依赖,可将连接串改为使用pymysql驱动:
    app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql+pymysql://taran:1234@localhost/flask'
    
    修改前先执行命令 pip install pymysql 安装对应依赖。
  • 适配MySQL 8.0版本的密码策略
    若使用MySQL 8.0及以上版本,默认的caching_sha2_password认证插件可能导致连接失败,执行以下语句修改用户认证方式:
    ALTER USER 'taran'@'localhost' IDENTIFIED WITH mysql_native_password BY '1234';
    FLUSH PRIVILEGES;
    
  • 检查端口配置
    若修改过MySQL默认端口,需在连接串中显式指定端口,示例:
    app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql://taran:1234@localhost:3307/flask'
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 20:27:04