当前位置: 首页 > news >正文

54 mysql 中各种 timeout - connect/wait/interactive/read/write_timeout

前言

在 mysql 的服务器配置中, 我们经常会使用到几个 timeout

诸如 connect_timeout, wait_timeout, interactive_timeout, read_timeout, write_timeout 等等 

我们 这里来看一下 他们的具体的使用场景, 以及具体控制的相关信息 是什么

 

 

connect_timeout

这个是 客户端 和 服务器建立连接之后, 客户端需要向服务器发起认证请求 

如果在 connect_timeout 期限内, 客户端未发送认证请求, 服务器会断开 和 客户端的连接

a2c3d543349d522fae99892557bf2be7.png

 

客户端和服务器这边新建了连接之后, 需要登录, 登录的时候设置了 socket 的读写超时时间为 connect_timeout

d595db238e97b6ac03f258b9a2f5b0df.png 

登录之后, 如果是登录成功 

将 socket 的读写超时时间更新为 net_read_timeout, net_write_timeout

 

 

wait_timeout/interactive_timeout

这两个超时时间, 控制的是 一个连接 如果超过多久, 没有交互了, mysql 这边可以关闭这个连接了 

从描述上面看, 二者基本上是一样的, 从业务控制上面看, interactive_timeout 被转换为了 wait_timeout

f60be9149c4404125a197130c1f27f63.png

0847d3624d08795a74f38a9aabbdcac8.png 

这里是 登录校验 的时候, 将 interactive_timeout 转换为了 wait_timeout

eccb6ffa41bda723ed38c934da11cdfc.png 

 

这里是具体使用到的地方, “thd->get_protocol()->get_command” 是轮询 socket, 查看客户端是否有请求数据过来

因此 在轮询之前, 将 socket 的超时时间更新为了 wait_timeout

当前连接, 如果是超过了 wait_timeout 没有活跃, 则 超时, 然后 外层 handle_connection 的循环, 走 end_connection, close_connection 的相关流程 

bda6fc74b93a6956e35de85db9c439cd.png

 

 

read_timeout/write_timeout

这两个主要控制的就是 服务器这边从客户端读取数据, 和 服务器往客户端写出数据 的超时时间控制了

这两个系统变量 描述信息如下

22df479ecbf4f78d54bd372f5c979505.png

15ebae46af314ac3d71f5db8339af8a1.png 

read_timeout 的这边使用如下, 在处理客户端请求之前, 将 socket 的读取超时时间更新为 read_timeout

如果是 服务器这边读取客户端的请求数据, 超过了 read_timeout, 则超时 

ece1a7e1d9cf20d9b22167693d251d4a.png

 

write_timeout 的这边配置是在 登录连接之后, 将 socket 的写出超时时间更新为了 write_timeout

然后 后面的, 请求处理等等相关, 均是基于这个 write_timeout 的配置 

01603963fb27fa4cf26428d469882e76.png

 

 

read_timeout 的整体更新流程

这个是在 创建连接, 处理业务, 关闭连接 的几个阶段的 socket 读取超时 时间的更新的一个大致的情况

初始化的时候, 使用全局变量的 read_timeout 进行初始化 读取超时时间

eaf7e9d18eb96d51e9809bf273a6783e.png

 

然后是 登录的使用, 使用 connect_timeout 来更新 socket 的读取超时时间 

4b5a7c7bf7c7233a218f17ff9e34c445.png 

然后是 登录验证之后, 将 socket 的读取超时时间更新为了 read_timeout

987c98b739b024bdace453e0c0b5ad5a.png 

然后是 轮询客户端请求之前, 将 socket 的超时时间 更新为了 wait_timeout

0f2667e95101fad615e1595701daa549.png 

然后是处理客户端请求之前, 将 socket 的读取超时时间更新为了 read_timeout

bda9fa84d4e5cb34c806954f8a0bc72a.png 

之后是随着连接的 生命周期的业务处理, 在等待客户端请求信息之前将 socket 的读取超时时间更新为 wait_timeout, 在处理客户端的请求信息之前将 socket 的读取超时时间更新为 read_timeout

 

 

write_timeout 的整体更新流程 

这个是在 创建连接, 处理业务, 关闭连接 的几个阶段的 socket 写出超时 时间的更新的一个大致的情况

初始化的时候, 使用全局变量的 write_timeout 进行初始化 写出超时时间

1b4baccf319f03b1bac52b7fd603c3a6.png

 

然后是 登录的使用, 使用 connect_timeout 来更新 socket 的读取写出时间 

06d68a9d9ac36c384bdc9dc6d6dc9407.png 

然后是 登录验证之后, 将 socket 的读取超时时间更新为了 write_timeout

563640c5b1623d8db674942d1fa8a60d.png 

然后在之后连接的生命周期中, socket 的写出超时时间, 一直是 write_timeout

 

 

完 

 

 

 

相关文章:

54 mysql 中各种 timeout - connect/wait/interactive/read/write_timeout

前言 在 mysql 的服务器配置中, 我们经常会使用到几个 timeout 诸如 connect_timeout, wait_timeout, interactive_timeout, read_timeout, write_timeout 等等 我们 这里来看一下 他们的具体的使用场景, 以及具体控制的相关信息 是什么 connect_timeout 这个是 客户端 和…...

实战案例(5)防火墙通过跨三层MAC识别功能控制三层核心下面的终端

如果网关是在核心设备上面,还能用MAC地址进行控制吗? 办公区域的网段都在三层上面,防火墙还能基于MAC来控制吗? 采用正常配置模式的步骤与思路 (1)配置思路与上面一样 (2)与上面区…...

【智能流体力学】数值模拟中的稳态和瞬态

在流体力学和数值模拟中, 稳态 (Steady State)意味着流体的物理量(如速度、压力、温度等)不随时间变化。换句话说,在稳态模拟中,系统已经达到了平衡,任何位置上的流场特性都不再随时间发生变化。 其他教程参考:https://doc.cfd.direct/openfoam/user-guide-v12/index…...

Vue-Route4 ts

小满学习视频 Vue-Route 官网 项目的目录结构: 1. Vue-Router的使用 安装Vue-route pnpm add vue-router4创建router文件 /route/index.vue import { createRouter } from "vue-router"; import {createMemoryHistory,createWebHashHistory,create…...

sizeof和strlen的小知识

Hello~,欢迎大家来到我的博客进行学习! 目录 1.sizeof和strlen😺1.1 sizeof🥰 1.2 strlen😋1.3 sizeof和strlen的对比👻 1.sizeof和strlen😺 1.1 sizeof🥰 sizeof是一种单目操作符&#xff0c…...

Java项目: 基于SpringBoot+mybatis+maven宠物咖啡馆平台(含源码+数据库+毕业论文)

一、项目简介 本项目是一套基于SpringBootmybatismaven宠物咖啡馆平台 包含:项目源码、数据库脚本等,该项目附带全部源码可作为毕设使用。 项目都经过严格调试,eclipse或者idea 确保可以运行! 该系统功能完善、界面美观、操作简单…...

戴尔14代服务器配置IDRAC9远程配置说明

一、规划管理网段 规划管理网段,要求如下: 管理网段与业务网段不能使用同一网段;管理网段与业务网段不能直接互通;如有条件管理网与业务网使用不同设备接入。 二、配置服务器idrac 2.1、确认idrac口位置 2.2、开机进F2 2.3、 …...

如何让你家里的电脑连接公司的远程桌面

在远程工作日益普遍的今天,能够从家里的电脑连接到公司的远程桌面,不仅可以提高工作效率,还能确保工作的连续性和数据的安全性。本文将详细指导你如何设置并实现从家中电脑连接至公司远程桌面的过程,无论你是使用Windows还是Mac系…...

软件:分享8个常用视频剪辑免费软件,你都用过吗?

随着视频剪辑的需求增多,现在市面上都有很多好用的视频剪辑软件,有的收费有的免费,不同的视频剪辑软件有不同的特点和优势。本文整理了几个简单好用的电脑视频剪辑工具,供大家参考。 不同的剪辑技术对应了不同的视频剪辑软件&…...

TS 常用类型

我们经常说TypeScript是JavaScript的一个超级 TypeScript 常用类型 TypeScript 是 JS 的超集,TS 提供了 JS 的所有功能,并且额外的增加了:类型系统 所有的 JS 代码都是 TS 代码 JS 有类型(比如,number/string 等&…...

半导体芯闻--20240913

1、舜宇光学在2024年上半年业绩表现亮眼,营收和净利润同比大幅增长。公司资产规模维持较高水平,短期偿债能力强。研发投入持续增加,特别是在车载模组领域取得显著成绩,与多家主流平台方案厂商深度合作,巩固了其在车载模…...

C盘空间不足如何解决?解决C盘空间不足的7个方法

当计算机的C盘(通常作为系统盘)空间不足时,会严重影响系统的运行效率和稳定性。针对这一问题,以下7个解决方案,可以帮助我们有效释放C盘空间,提升系统性能。 1.磁盘清理 利用Windows内置的磁盘清理工具…...

比 GPT-4 便宜 187 倍的Mistral 7B (非广告)

Mistral 7B 是一种设计用来快速处理较长文本的人工智能模型。它采用了一些特别的技术来提高速度和效率,比如“分组查询注意力(grouped-query attention)”和“滑动窗口注意力(sliding-window attention)”。 这些技术…...

FFmpeg与OpenCV联合开发

本文讲述如何利用FFmpeg SDK与OpenCV 从RTSP流中获取图像(OpenCV MAT 对象格式)。 一,构造RTSP视频流 因为是在本机实验,所以我自己构造了一个RTSP流。如果你有现成的RTSP流也可以的。 实验用的源视频是黑神话悟空的《云宫讯音》…...

Docker 部署 Redis (图文并茂超详细)

部署 Redis ( Docker ) [Step 1] : 拉取 Redis 镜像, 推荐使用 7 的 Redis 版本 docker pull redis:7.0.12[Step 2] : 创建 Redis 相关目录 ➡️ 启动 Redis 容器 ➡️ 拷贝文件 ➡️ 授权文件夹 ➡️ 删除容器 # 创建 Redis 相关目录 mkdir -p /data/redis/{conf,data,log…...

Docker基础-Docker Compose使用

文章目录 一、什么是Docker Compose?常用命令 Docker Compose安装前提条件Linux 上的安装macOS 上的安装Windows 上的安装注意事项启动 Docker Compose 服务 Docker Compose使用Docker Compose 文件基本结构关键概念示例:更复杂的配置注意事项 参考文献 一、什么是…...

GPT撰写开题报告教程——课题确定及文献调研

撰写开题报告是一项复杂而重要的任务,需要涵盖从主题选择到文献综述、研究方法等多个环节。借助AI,如ChatGPT,可以显著提高这一过程的效率以及内容的质量。本文将详细探讨如何一步步利用ChatGPT撰写开题报告。 一、开题报告内容 一个清晰的…...

SprinBoot+Vue高校就业管理系统的设计与实现

目录 1 项目介绍2 项目截图3 核心代码3.1 Controller3.2 Service3.3 Dao3.4 application.yml3.5 SpringbootApplication3.5 Vue 4 数据库表设计5 文档参考6 计算机毕设选题推荐7 源码获取 1 项目介绍 博主个人介绍:CSDN认证博客专家,CSDN平台Java领域优质…...

【人工智能】Transformers之Pipeline(十八):文本生成(text-generation)

目录 一、引言 二、文本生成(text-generation) 2.1 概述 2.2 家谱树谱——encoder or decoder is a problem 2.3 pipeline参数 2.3.1 pipeline对象实例化参数 2.3.2 pipeline对象使用参数 ​​​​​​​ 2.3.3 pipeline返回参数 ​​​​​​​…...

判断当前用户登录时常是否超过两个小时

有一个签到功能需要用户登录时间超过两个小时才可以签到 1. 存储登录时间戳 login() { // 假设这是登录后的操作 const currentTime new Date().getTime(); // 获取当前时间戳 localStorage.setItem(loginTimestamp, currentTime.toString()); // 存储登录时间戳 // 其他…...

Go 语言接口详解

Go 语言接口详解 核心概念 接口定义 在 Go 语言中,接口是一种抽象类型,它定义了一组方法的集合: // 定义接口 type Shape interface {Area() float64Perimeter() float64 } 接口实现 Go 接口的实现是隐式的: // 矩形结构体…...

解决本地部署 SmolVLM2 大语言模型运行 flash-attn 报错

出现的问题 安装 flash-attn 会一直卡在 build 那一步或者运行报错 解决办法 是因为你安装的 flash-attn 版本没有对应上,所以报错,到 https://github.com/Dao-AILab/flash-attention/releases 下载对应版本,cu、torch、cp 的版本一定要对…...

鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个生活电费的缴纳和查询小程序

一、项目初始化与配置 1. 创建项目 ohpm init harmony/utility-payment-app 2. 配置权限 // module.json5 {"requestPermissions": [{"name": "ohos.permission.INTERNET"},{"name": "ohos.permission.GET_NETWORK_INFO"…...

IT供电系统绝缘监测及故障定位解决方案

随着新能源的快速发展,光伏电站、储能系统及充电设备已广泛应用于现代能源网络。在光伏领域,IT供电系统凭借其持续供电性好、安全性高等优势成为光伏首选,但在长期运行中,例如老化、潮湿、隐裂、机械损伤等问题会影响光伏板绝缘层…...

LangChain知识库管理后端接口:数据库操作详解—— 构建本地知识库系统的基础《二》

这段 Python 代码是一个完整的 知识库数据库操作模块,用于对本地知识库系统中的知识库进行增删改查(CRUD)操作。它基于 SQLAlchemy ORM 框架 和一个自定义的装饰器 with_session 实现数据库会话管理。 📘 一、整体功能概述 该模块…...

4. TypeScript 类型推断与类型组合

一、类型推断 (一) 什么是类型推断 TypeScript 的类型推断会根据变量、函数返回值、对象和数组的赋值和使用方式,自动确定它们的类型。 这一特性减少了显式类型注解的需要,在保持类型安全的同时简化了代码。通过分析上下文和初始值,TypeSc…...

MinIO Docker 部署:仅开放一个端口

MinIO Docker 部署:仅开放一个端口 在实际的服务器部署中,出于安全和管理的考虑,我们可能只能开放一个端口。MinIO 是一个高性能的对象存储服务,支持 Docker 部署,但默认情况下它需要两个端口:一个是 API 端口(用于存储和访问数据),另一个是控制台端口(用于管理界面…...

数据结构:递归的种类(Types of Recursion)

目录 尾递归(Tail Recursion) 什么是 Loop(循环)? 复杂度分析 头递归(Head Recursion) 树形递归(Tree Recursion) 线性递归(Linear Recursion)…...

论文阅读:Matting by Generation

今天介绍一篇关于 matting 抠图的文章,抠图也算是计算机视觉里面非常经典的一个任务了。从早期的经典算法到如今的深度学习算法,已经有很多的工作和这个任务相关。这两年 diffusion 模型很火,大家又开始用 diffusion 模型做各种 CV 任务了&am…...

Android写一个捕获全局异常的工具类

项目开发和实际运行过程中难免会遇到异常发生,系统提供了一个可以捕获全局异常的工具Uncaughtexceptionhandler,它是Thread的子类(就是package java.lang;里线程的Thread)。本文将利用它将设备信息、报错信息以及错误的发生时间都…...