dbAntMySQL interactive

dbAntMySQL interactive

网上很多文章都说这两个参数需要同时设置才生效,其实是误解。

interactive_timeout 和 wait_timeout 必须同时设置才会生效。

我们看官方文档怎么说的?

interactive_timeout:Mysql交互连接(mysql命令行)的空闲等待时间,单位是秒,默认是8小时,建议不要将该参数设置超过24小时,即86400

wait_timeout:Mysql非交互连接(app应用的jdbc连接)的空虚等待时间,单位是秒,默认是8小时,建议不要将该参数设置超过24小时,即86400

这里好像不太一样,多了个 or,就是说session级别的 wait_timeout 值可以来自global wait_timeout的值,也可以来时 global interactive_timeout的值,这取决于客户端连接的类型(交互式的还是非交互式的)。

举个栗子:

1、查看当前默认值

show variables like ‘%timeout%’;

show global variables like ‘%timeout%’;

2、修改wait_timeout的值为14400

set global wait_timeout=14400;

这里发现wait_timeout的值session级别还是28800,只有global级别的值变成了14400。

3、退出会话,重新登录

还是跟上面一样,wait_timeout的值session级别是28800,global级别的值14400。

正如官方文档所说,这是因为mysql命令行登录属于交互式客户端,session级别的wait_timeout值由global级别的 interactive_timeout 参数决定(即28800)。

4、为了进一步验证这一点,我们通过python连接数据库进行查询

vi conn_mysql.py

#!/usr/bin/python

# -*- coding: utf-8 -*-

import mysql.connector

# 连接数据库

mydb = mysql.connector.connect(host=”10.0.1.1″,user=”root”,password=”XXXX“,database=”mysql”)

mycursor = mydb.cursor()

mycursor.execute(“show variables where variable_name in(‘interactive_timeout’,’wait_timeout’)”)

# 获取查询结果

myresult = mycursor.fetchall()

print myresult

mydb.close()

可以看到,这里通过非交互式连接,session级别的wait_timeout = 14400,符合官方文档的说明。

【总结】

interactive_timeout 参数和 wait_timeout 参数可以独立设置

sesseion级别的 wait_timeout 受客户端连接类型影响:

交互式连接(如:mysql命令行),则会话的 wait_timeout 的值等于 global interactive_timeout的值

非交互式连接(如:应用jdbc),则会话的 wait_timeout 的值等于 global wait_timeout的值

更多尼泊尔内容

微软Surface Pro 11评测:一万买高通芯片合理吗? |凰家评测
世界杯365网站打不开

微软Surface Pro 11评测:一万买高通芯片合理吗? |凰家评测

🗓️ 07-08 👁️ 9682
ThinkBook 16+2025锐龙版AI全能本轻薄笔记本电脑
bet28365365官网

ThinkBook 16+2025锐龙版AI全能本轻薄笔记本电脑

🗓️ 10-07 👁️ 1297
央视回应世预赛十八强赛未获赛事版权:对方报价极度畸高
QQ升级过程中出现问题,更改了QQ聊天记录存储路径。如何恢复原先的聊天记录?
原神理水叠山真君在哪
世界杯365网站打不开

原神理水叠山真君在哪

🗓️ 10-05 👁️ 8975
邹市明最新比赛嘉宾亮相世界杯体育盛会,深度解析拳击与足球的激情碰撞
耳朵进苍蝇能活几分钟
世界杯365网站打不开

耳朵进苍蝇能活几分钟

🗓️ 07-28 👁️ 4270
蜂派游戏
office365邮箱手机版

蜂派游戏

🗓️ 09-11 👁️ 5078
《英雄联盟手游》发表情方法介绍
世界杯365网站打不开

《英雄联盟手游》发表情方法介绍

🗓️ 10-28 👁️ 8774