gpt4 book ai didi

Python mysql.connector 超时

转载 作者:可可西里 更新时间:2023-11-01 06:52:26 25 4
gpt4 key购买 nike

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

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() 函数上花费的时间不超过五秒钟。我已经弄清楚了。其次,我希望它在 .execute() 函数上花费的时间不超过一秒钟。我该怎么做?

我是数据库管理员,因此如果需要,我可以为此做些事情。不过,我宁愿只为一个特定的 MySQL 用户更改超时,而不是为每个用户更改超时,这就是我从 Python 端开始的原因。

这是我目前发现的:

documentation for mysql.connecter 列出了几个超时参数。 Connect-timeout 将为初始连接设置超时,但据我所知,它不会设置查询超时。如果没有事件,交互式超时将导致它超时,但我不认为这意味着如果查询执行时间太长它会超时。

connect-timeout=seconds以秒为单位的连接超时。在 Linux 上,此超时也用于等待服务器的第一个响应。(超时已被连接超时取代,但为了向后兼容,MySQL 5.0 仍然支持超时。)

interactive-timeout=seconds在关闭连接之前允许几秒钟的不活动。客户端的 session wait_timeout 变量设置为 session interactive_timeout 变量的值。

最佳答案

从 MySQL 5.7.8 开始 maximum execution time for just SELECT statements可以为每个 session 设置。连接后立即设置:

db = mysql.connector.connect(...)
cursor = db.cursor()
# Limit SELECTs to 1 second
cursor.execute("SET SESSION MAX_EXECUTION_TIME=1000")

关于Python mysql.connector 超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24327410/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com