mysql 5.7 连接超时参数设置

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

show variables like '%timeout%';

参数解释

connect_timeout

connect_timeout指的是连接过程中握手的超时时间,在5.0.52以后默认为10秒,之前版本默认是5秒。

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

have_statement_timeout

       是否开启语句执行超时,YES 开启,NO关闭

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。

interactive_timeout & wait_timeout

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

如果我们运行mysql -uroot -p命令登陆到mysql,wait_timeout就会被设置为interactive_timeout的值。
如果我们在wait_timeout时间内没有进行任何操作,那么再次操作的时候就会提示超时,
这是mysql client会重新连接。

handshake流程讲解

  • 在TCP三次握手的基础之上,简历MySQL通讯协议的连接,这个连接建立过程受connect_timeout参数控制

在MySQL通讯协议建立连接之后,此时客户端连接的超时受wait_timeout和interactive_timeout参数控制

建立连接后无交互:

MySQL server —wait_timeout— Client

建立连接交互后:

MySQL server —interactive_timeout— Client

在如果客户端有数据包传输,那么这个数据包的传输超时由net_read_timeout和net_write_timeout参数控制

总结:

如果是java 或其他程序使用jdbc等方式连接mysql 则关注 connect_timeout,wait_timeout

如果是客户端 使用 mysq -u -root -p 方式建立连接的则要关注connect_timeout 和interactive_timeout

另外所有连接有读写的都要关注net_read_timeout 和net_write_timeout 超时时间

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大龄奋斗程序猿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值