sqlalchemy mysql 服务器已断开连接

1 投票
1 回答
1904 浏览
提问于 2025-04-16 07:53

我看过很多类似的问题,但没有一个能解决我的困扰。我正在运行一个pylons应用,并使用SQLAlchemy连接两个数据库。第一个数据库通过配置文件设置,运行得非常顺利,没有任何问题。我试图通过在模型中初始化一个类来连接第二个数据库,代码是这样的:

class DB2(object):

  def __init__(self):
    self.engine = sa.create_engine('mysql://someaddress:3306/database', echo=False, pool_recycle=1800)
    self.meta = sa.MetaData(self.engine)

    <define tables>

    <define mappings>

    Session = orm.sessionmaker(bind=self.engine, autoflush=False, autocommit=False)
    self.session = Session()

我以为在这里定义pool_recycle(设置一个和我正常工作的数据库相同的时间)就足够了,可以避免这个问题,但事实并不是这样。有没有人能推荐一个解决方案?谢谢。

1 个回答

2

我最近也遇到了同样的问题,解决办法是确保每次都关闭事务,即使是在执行SELECT查询之后。只需要在每次使用数据库的地方加上DB2.session.commit(),这样就能让连接正常循环使用了。

撰写回答