我一直无法find一个logging的方式来设置实际工作的初始连接超时。 我不是在询问“查询超时”,而是在数据库服务器完全closures或无法访问的情况下进行初始连接尝试的超时,并且根本没有响应。 默认情况下,这样的连接在255秒后显示超时 – 是否有一种方法来设置更短的超时?
编辑:为了清楚起见,我应该在这里重申堆栈:
https://stackoverflow.com/a/12946908/1552953
这个答案是指能够在连接上设置超时:
时间到
可选的整数查询超时,以秒为单位。 使用零,默认,禁用。
超时适用于由连接创建的所有游标,因此对于给定的连接无法更改。
如果发生查询超时,数据库应该用SQLSTATE HYT00或HYT01引发一个OperationalError。
注意:此属性只影响查询。 要设置实际连接过程的超时值,请使用pyodbc.connect函数的timeout关键字。
result = None with pyodbc.connect('DRIVER={SQL server};SERVER=mydb;DATABASE=solarwinds;Trusted_Connection=True', timeout=1) as cnxn: cursor = cnxn.cursor() result = cursor.execute(query).fetchall()
所以使用上面的代码在1秒内没有超时,或者至少在1秒内没有返回结果。 但它确实返回的结果比没有超时设置快得多。