mysql 链接超时的几个参数详解

mysql5.7版本中,先查看超时设置参数,我们这里只关注需要的超时参数,并不是全都讲解

show variables like '%timeout%';

connect_timeout

指的是连接过程中握手的超时时间,在5.0.52以后默认为10秒,之前版本默认是5秒,主要是客户端的参数。

mysql的基本原理应该是有个监听线程循环接收请求,当有请求来时,创建线程(或者从线程池中取)来处理这
请求。由于mysql连接采用TCP协议,那么之前势必是需要进行TCP三次握手的。
TCP三次握手成功之后,客户端进入阻塞,等待服务端的消息。服务端这个时候会创建一个线程(或者从线程池中取一个线程)来处理请求,主要验证部分包括host和用户名密码验证。host验证我们比较熟悉,因为在用grant命令授权用户的时候是有指定host的。
用户名密码认证则是服务端先生成一个随机数发送给客户端,客户端用该随机数和密码进行多次sha1加密后发送给服务端验证。如果通过,整个连接握手过程完成

wait_timeout(interactive_timeout)

从文档上来看wait_timeout和interactive_timeout都是指不活跃的连接超时时间,连接线程启动的时候wait_timeout会根据是交互模式还是非交互模式被设置为这两个值中的一个,默认是8个小时。

数据库重启数据库空闲连接超过设置的最大timemout时间导致数据库会强行断开已有的链接,就会报这个异常。
如果在wait_timeout秒期间内,数据库连接(java.sql.Connection)一直处于等待状态,mysql就将该连接关闭。这时,你的Java应用的连接池仍然合法地持有该连接的引用。当用该连接来进行数据库操作时,就会产生上述错误。一般mysql自身连接的等待时间(wait_timeout)缺省为8小时,或者通过命令参数查看

net_read_timeout 和 net_write_timeout

net_read_timeout
    mysql服务端从客户端读取(接收)数据时,服务端等待客户端响应的超时时间,当服务端正在从客户端读取 
   数据时,net_read_timeout控制何时超时。
 
  对于这个参数,session和global级别并没有什么特别,session级别只对当前连接生效,global级别只对新 
  的连接生效。默认值是30S。


net_write_timeout
 
   mysql服务端向客户端写(发送)数据时,服务端等待客户端响应的超时时间,当服务端正在写数据到客户端 
   时,net_write_timeout控制何时超时。
 
   对于这个参数,session和global级别并没有什么特别,session级别只对当前连接生效,global级别只对新 
   的连接生效,默认值是60S。

参考文档:

mysql 5.7 连接超时参数设置_mysql connecttimeout-CSDN博客

数据库连接池连接超时报错 - 知乎

相关推荐

  1. 用于接收参数注解

    2023-12-09 06:12:03       32 阅读
  2. php 使用接收两参数

    2023-12-09 06:12:03       24 阅读
  3. pytorch常用函数详解

    2023-12-09 06:12:03       50 阅读
  4. Delphi打开网址种方法

    2023-12-09 06:12:03       24 阅读
  5. websocket携带参数

    2023-12-09 06:12:03       31 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-09 06:12:03       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-09 06:12:03       100 阅读
  3. 在Django里面运行非项目文件

    2023-12-09 06:12:03       82 阅读
  4. Python语言-面向对象

    2023-12-09 06:12:03       91 阅读

热门阅读

  1. pcl-3 pcl结合opencv做svm分类(法向量特征数据)

    2023-12-09 06:12:03       50 阅读
  2. 车联网软件定义汽车安全攻击示例

    2023-12-09 06:12:03       57 阅读
  3. vue router之route和router的区别

    2023-12-09 06:12:03       54 阅读
  4. Hive 浅析

    2023-12-09 06:12:03       68 阅读
  5. linux系统web服务以及apache介绍

    2023-12-09 06:12:03       56 阅读
  6. WPF(Windows Presentation Foundation)的 StatusBar控件

    2023-12-09 06:12:03       64 阅读
  7. 深度学习基础回顾

    2023-12-09 06:12:03       64 阅读
  8. 【使用apache snakeyaml 管理yml文件】

    2023-12-09 06:12:03       57 阅读