下面是使用MySQL模块与mysql.connector数据库的简单连接。
db = mysql.connector.connect(
host=DB_SERVER,
port=DB_PORT,
user=DB_UNAME,
passwd=DB_PASSWORD,
db=DB_NAME)
db.connect()
mysqlCursor.execute(query)我想控制两个不同的超时。首先,我希望它在.connect()函数上不超过5秒。我已经弄清楚了。其次,我希望它在.execute()函数上花费不超过1秒的时间。我怎么能这么做?
我是数据库管理员,如果需要的话,我可以在这方面做一些事情。不过,我希望只更改特定MySQL用户的超时时间,而不是为每个人更改超时时间,这就是为什么我要从Python方面开始。
到目前为止,我发现的是:
文档 for mysql.connecter列出了几个超时参数。Connect-超时值将设置初始连接的超时,但据我所知,它不会设置查询超时。如果没有活动,交互式超时将导致超时,但我不认为这意味着如果查询执行时间过长,就会超时。
connect-timeout=seconds连接超时,以秒为单位。在Linux上,这个超时也用于等待服务器的第一个答案。(connect超时已经取代了超时值,但是MySQL 5.0仍然支持超时,以实现向后兼容性。)
interactive-timeout=seconds允许在关闭连接之前保持秒的不活动。客户端的会话wait_timeout变量设置为会话interactive_timeout变量的值。
发布于 2018-06-08 15:07:26
从MySQL 5.7.8开始,每个会话都可以设置一个仅SELECT语句的最大执行时间。在连接后立即设置:
db = mysql.connector.connect(...)
cursor = db.cursor()
# Limit SELECTs to 1 second
cursor.execute("SET SESSION MAX_EXECUTION_TIME=1000")https://stackoverflow.com/questions/24327410
复制相似问题