Flask框架下的sqlalchemy.exc.OperationalError: (pymysql.err.OperationalError) (1045)问题

1 篇文章 0 订阅
1 篇文章 0 订阅

项目场景:

用flask框架搭起项目,连接数据库中出现1045的问题。

问题描述

提示:确保数据库用户、密码没问题后。
在flask启动后,访问mysql的时候出现如下问题:
sqlalchemy.exc.OperationalError: (pymysql.err.OperationalError) (1045, “Access denied for user ‘root’@‘localhost’ (using password: YES)”) (Background on this error at: http://sqlalche.me/e/e3q8)
在这里插入图片描述

sqlalchemy.exc.OperationalError: (pymysql.err.OperationalError) (1045, "Access denied for user 'root'@'localhost' (using password: YES)") (Background on this error at: http://sqlalche.me/e/e3q8)

原因分析:

提示:这个问题搜了很多都是提示要更改数据库密码,还有一些是本地数据不对外开放问题,我的问题是依赖版本问题。

原因一般有几种:

  1. 常见问题有mysql登录出现1045的问题,这个问题很简单,更改本地的my.ini文件里面的参数即可。
  2. 确保数据库登录、访问没问题后,就是连接数据语句出现了错误。

解决方案:

提示:需要改掉数据连接URI地址

首先我测试了数据库登录注册有没有问题,这里从网上搜了一个pymysql连接数据库的代码。
在这里插入图片描述

import pymysql

def connectdb():
    print("连接到mysql服务器...")
    db = pymysql.connect(
        host="localhost",
        user="root",
        passwd="123",
        port=3306,
        db="Graduationdesign",
        charset="utf8",
        cursorclass=pymysql.cursors.DictCursor
    )
    print("连接成功!")
    return db

connectdb()

测试通过后,就可以修改URI地址,从文档找出合适当前版本的连接方法
我之前用的连接方法换到了朋友的环境下竟然不能用了,我认为是依赖版本的问题,我用的SQLAlchemy和朋友用的不一样,所以出现了问题,这里更换了URI就不会报错了。
在这里插入图片描述

# SQLALCHEMY_DATABASE_URI = "mysql+pymysql://root:Password123$@localhost:3306/Graduationdesign?charset=utf8"
  SQLALCHEMY_DATABASE_URI = "mysql+pymysql://root:123@localhost:3306/Graduationdesign"

SQLAlchemy 1.4 文档地址:https://docs.sqlalchemy.org/en/14/errors.html#error-e3q8

  • 9
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
asyncmy.errors.OperationalError: (1205, 'Lock wait timeout exceeded; try restarting transaction')是一个数据库错误,提示了锁等待超时的问题。这个错误通常发生在使用事务的时候,如果一个事务在占用某个资源的时候没有主动提交,其他事务在抢占该资源时就会因为上一个事务的锁而导致抢占失败,从而导致超时错误。解决这个问题的方法是尝试重新启动事务,或者检查是否有其他会话占用资源并解决该会话的问题。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [存库报错 (1205, 'Lock wait timeout exceeded; try restarting transaction')](https://blog.csdn.net/qq_36853469/article/details/88868328)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *3* [flask框架项目mysql报错:1205, ‘Lock wait timeout exceeded; try restarting transaction‘【已解决】](https://blog.csdn.net/shanxiderenheni/article/details/126627800)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值