首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python mysql.connector超时

Python mysql.connector超时
EN

Stack Overflow用户
提问于 2014-06-20 12:35:24
回答 1查看 18.1K关注 0票数 10

下面是使用MySQL模块与mysql.connector数据库的简单连接。

代码语言:javascript
复制
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变量的值。

EN

回答 1

Stack Overflow用户

发布于 2018-06-08 15:07:26

从MySQL 5.7.8开始,每个会话都可以设置一个仅SELECT语句的最大执行时间。在连接后立即设置:

代码语言:javascript
复制
db = mysql.connector.connect(...)
cursor = db.cursor()
# Limit SELECTs to 1 second
cursor.execute("SET SESSION MAX_EXECUTION_TIME=1000")
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24327410

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档