Python sqlalchemy连接失败,出现“socket.gaierror: [Errno -2] 找不到名称或服务”
我正在尝试通过sqlalchemy使用本地的postgres数据库连接。它能够进入with
语句,但一旦我尝试对连接做任何操作,就开始崩溃。
async with database.async_session.begin() as db_session:
account = await AccountOrm.one_or_none(db_session, ...) # crash here, deep inside sqlalchemy internals
很长的错误信息显示,问题一直追溯到sqlalchemy的连接池,最后出现了socket.gaierror: [Errno -2] Name or service not known
的错误。其他关于这个错误的回答大多是与HTTP相关的问题,所以我有点搞不清楚到底出了什么问题。
1 个回答
0
感谢某位朋友在一个与HTTP相关的问题上的回答,我意识到我的数据库连接字符串构建得不对。
我是根据环境变量的值动态生成这个连接字符串的,但在格式化成数据库连接字符串时,我的主机名意外地是空的,这就解释了为什么会出现套接字连接的问题。
所以,如果你在数据库方面遇到这个问题,一定要仔细检查你的连接字符串(或其他连接信息)。