postgreSql 报错 (psycopg2.errors.IdleInTransactionSessionTimeout) terminating connection due to idle-i

Posted 刘欣欣

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了postgreSql 报错 (psycopg2.errors.IdleInTransactionSessionTimeout) terminating connection due to idle-i相关的知识,希望对你有一定的参考价值。

具体问题:

 

 

 

 第二个问题呢就是 原因大概是酱紫的

mysql超过wait_timeout后,连接会挂掉,服务就会报错 OperationalError: (_mysql_exceptions.OperationalError) (2006, \'MySQL server has gone away\') ,由于也sqlalchemy关闭了autocommit,隐式使用了事务,还会有错误StatementError: (sqlalchemy.exc.InvalidRequestError) Can\'t reconnect until invalid transaction is rolled back
网上的解决方式呢如下:

解决方案一:打开autocommit

sqlalchemy打开autocommit后, 就会停止使用事务,生成的查询语句立即执行

解决方案二:

在所有访问数据库的地方加异常捕获,报异常时rollback

 

但是呢,在我这并不好使 (此时我的内心是崩溃的 妈妈耶 甚至怀疑自己是不是入错行了 作为一个前端 跑来搞后端代码 不知死活blablabla)

继续解决问题死马当活马医:

因为我的代码里面就是用的解决方案二,因此对我没有卵用。

尝试:在每个return 语句中 都加上一句:db.session.rollback() AND db.session.close()

ok,截止到目前解决了百分之五十的问题 但是我是个程序员所以我也不知道他是咋解决的 反正第二个截图里面的XXXrollback()已经不报了 但是持续的报第一个错误。

继续解决问题:

因为我的代码里有的执行了两句sql,在每个sql语句执行完毕 我得到需要的值之后执行db.session.close()

至此 问题圆满解决。来自一个小前端面对后端问题瑟瑟发抖了好久之后的逼逼叨

以上。

(ps:我今天真的是有点怀疑自己是不是入错行了真的)

以上是关于postgreSql 报错 (psycopg2.errors.IdleInTransactionSessionTimeout) terminating connection due to idle-i的主要内容,如果未能解决你的问题,请参考以下文章

windows下安装postgresql失败,报错的原因及解决方法

postgresql group by 报错

postgresql安装指南

postgresql 数据库 timescaledb 函数time_bucket_gapfill()报错解决及更换 license

postgresql 数据库 timescaledb 函数time_bucket_gapfill()报错解决及更换 license

postgresql 数据库 timescaledb 函数time_bucket_gapfill()报错解决及更换 license