wait_timeout and interactive_timeout 参数
【资料图】
wait_timeout and interactive_timeout 参数非交互模式连接:通常情况下,应用到RDS实例会采用非交互模式,具体采用哪个模式需要查看应用的连接方式配置,比如PHP通过传递MYSQL_CLIENT_INTERACTIVE常量给mysql_connect()函数即可开启连接的交互模式。wait_timeout参数控制非交互模式连接的超时时间(单位秒,默认值为24小时即86400秒),当非交互式连接空闲时间超过wait_timeout指定的时间后,RDS实例会主动关闭连接。对于交互模式连接:通过 mysql 客户端 与 mysql server 建立的连接是交互式连接,interactive_timeout参数控制交互模式连接的超时时间(单位秒,默认值为2小时即7200秒),当交互式连接空闲时间超过interactive_timeout指定的时间后,RDS实例会主动关闭连接。wait_timeout和interactive_timeout这两个参数的修改,修改前已经存在的会话保持修改前的设置,修改后新创建的会话使用新的参数设置。wait_timeout指的是“连接完成后,使用过程中”的等待时间
参数 | 作用 |
---|---|
wait_timeout | 非交互式连接建立完成后,使用过程中的等待时间(单位:秒) |
interactive_timeout | 交互式连接建立完成后,使用过程中的等待时间(单位:秒) |
MySQL 8.0.26
client A | client B | client C |
---|---|---|
T1 | mysql -h -P -u -pset global wait_timeout = 10;set global interactive_timeout = 20;select @@global.wait_timeout, @@global.interactive_timeout;result (10, 20) | |
T2 | mysql -h -P -u -pselect @@session.wait_timeout, @@session.interactive_timeout; result (20, 20) | db = pymysql.connect()cursor = db.cursor()cursor.execute("select @@session.wait_timeout, @@session.interactive_timeout;")result (10,20 ) |
T3 | set @@session.wait_timeout = 10;select @@session.wait_timeout, @@session.interactive_timeout; result (10, 20) | |
T4 | wait 15s | time.sleep(15) |
T5 | select @@session.wait_timeout, @@session.interactive_timeout; (ERROR 4031 (HY000): The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.)result(20,20) | cursor.execute("select @@session.wait_timeout, @@session.interactive_timeout;")pymysql.err.OperationalError: (2013, "Lost connection to MySQL server during query") |
T6 | set @@session.wait_timeout = 20;set @@session.interactive_timeout = 10;select @@session.wait_timeout, @@session.interactive_timeout; result (20, 10) | cursor.execute("set @@session.wait_timeout = 20;")cursor.execute("set @@session.interactive_timeout = 10;")�cursor.execute("select @@session.wait_timeout, @@session.interactive_timeout;")result(20, 10) |
T7 | wait 15s | time.sleep(15) |
T8 | select @@session.wait_timeout, @@session.interactive_timeout; (Query OK)result(20,10) | �cursor.execute("select @@session.wait_timeout, @@session.interactive_timeout;")(Query OK)result(20,10) |
client A 在 T1 时刻将全局变量 wait_timeout 和 interactive_timeout 分别设置为 10s 和 20s。
client B 在 T2 时刻通过 mysql 客户端与 mysql server 建立连接(交互式连接),该连接中会话变量 wait_timeout 和 interactive_timeout 分别为 20s 和 20s, 因此可知交互式连接的会话变量 wait_timeout 和 interactive_timeout 都继承自全局变量 interactive_timeout 的值,接着 client B 在 T3 时刻,将会话变量 wait_timeout 设置为 10s,之后等待 15s,再查看会话变量 wait_timeout、interactive_timeout 时,发现连接已经断开,这说明交互式连接的连接闲置阈值由会话变量 wait_timeout 控制,client B 在 T6 时刻,将会话变量 wait_timeout 和 interactive_timeout 的值分别设置为 20s 和 10s,之后同样等待 15s,在 T8 时刻,再查看会话变量 wait_timeout、interactive_timeout 时,发现连接依旧未断开,直到 20s 后才断开连接,因此可知交互式连接的连接闲置阈值由会话变量 wait_timeout 控制,与会话变量 interactive_timeout 无关。
client C 在 T2 时刻通过 pymysql 与 mysql server 建立连接(非交互式连接),该连接中会话变量 wait_timeout 和 interactive_timeout 分别为 10s 和 20s, 因此可知非交互式连接的会话变量 wait_timeout 和 interactive_timeout 分别继承全局变量 wait_timeout 和 interactive_timeout 的值,接着 client C 在 T4 时刻等待 15s,再查看会话变量 wait_timeout、interactive_timeout 时,发现连接已经断开,这说明非交互式连接的连接闲置阈值由会话变量 wait_timeout 控制,client C 在 T6 时刻将会话变量 wait_timeout 和 interactive_timeout 的值分别设置为 20s 和 10s。之后等待 15s,在 T8 时刻,再查看会话变量 wait_timeout、interactive_timeout 时,发现连接依旧未断开,直到 20s 后才断开连接,因此可知非交互式连接的连接闲置阈值由会话变量 wait_timeout 控制,与会话变量 interactive_timeout 无关。
总结交互式连接的会话变量 wait_timeout 和 interactive_timeout 都继承自全局变量 interactive_timeout 的值非交互式连接的会话变量 wait_timeout 和 interactive_timeout 分别继承自全局变量 wait_timeout 和 interactive_timeout无论是交互式连接还是非交互式连接,连接闲置阈值都由会话变量 wait_timeout 控制,与会话变量 interactive_timeout 无关。FAQ为什么叫交互式和非交互式连接?通俗解释不知道?wait_timeout 和 interactive_timeout 参数应设置为多大?参数 wait_timeout 和 interactive_timeout 应尽量设置成相同设置为多大取决于业务,如果你面对的是成熟的开发(比如公司内部团队),可以设置小些,分钟级别就行。参考资料MySQL会话闲置时间控制如何处理RDS MySQL连接数满情况
关键词:
相关阅读
-
06-08
-
06-08
-
06-08
-
06-08
推荐阅读
-
银鹏控股公司:业务交流促提升互学互鉴共进步|世
3月2日,银鹏控股公司董事长刘懿婷带队前往中粮集团期货公司进行业务学习和交流。中粮期货公司从业多年、具有丰富实战经验的风险管理专家现场更多
2023-03-07 17:52:41
-
我国首个万吨级钠离子电池材料项目在山西综改区开
山西晚报讯(记者温丽芳通讯员张晓茹)日前,总投资约11亿元的山西华钠铜能(碳能)科技有限责任公司万吨级钠离子电池正(负)极材料项目在山更多
2023-03-07 11:51:14
-
建行阳江市分行:践行金融惠民理念-全球关注
2月24日,随着客户办妥抵押登记手续并成功放款,标志着阳江市建行“带押过户”业务取得历史性突破。根据中国人民银行发布《关于鼓励推广二手房更多
2023-03-07 11:53:21
-
焦点简讯:证监会同意三超新材向特定对象发行股票
中证网讯(记者昝秀丽)证监会网站3月6日消息,证监会发布关于同意南京三超新材料股份有限公司向特定对象发行股票注册的批复。【来源:中国证更多
2023-03-07 09:57:39
-
美股航空股6日全线走低
中证网讯(记者赵中昊)当地时间周一(3月6日),美股航空股全线走低。据wind数据,截至收盘,波音跌1 49%,美国航空跌1 47%,达美航空跌1%,更多
2023-03-07 09:43:44
-
世界热资讯!晋钢控股集团荣登2022山西省品牌十强
近日,“品牌强国(龙城)论坛”在太原举行,发布“2022中国上市公司品牌500强”以及“2022山西省品牌100强”。晋钢控股集团以218 9亿元的品牌更多
2023-03-06 17:38:52
-
手绘报告:2023预期目标
【来源:中国政府网】声明:转载此文是出于传递更多信息之目的,若有来源标注错误或侵犯了您的合法权益,请作者持权属证明发至邮箱newmedia@xx更多
2023-03-06 16:46:31
-
惠州首笔数字人民币缴纳税费业务成功落地
3月1日,TCL科技集团财务有限公司拿到了全市第一张使用数字人民币账户缴纳税款和非税收入的完税凭证,标志着惠州市首笔数字人民币缴纳税费业务更多
2023-03-06 11:50:50
-
理财