MySQL和连接相关的timeout 的详细整理

 更新时间:2017年08月24日 11:13:49   投稿:lqh  
这篇文章主要介绍了MySQL和连接相关的timeout 的详细整理的相关资料,本文主要总结下和连接有关的timeout,需要的朋友可以参考下

MySQL和连接相关的timeout 

 前言:

今天同事问为什么查询mysql库时, 在数据量比较大时,会话总断。刚开始以为是mysql的和连接有关timeout的问题,结果是网络的不稳定的原因。 

下面总结下和连接有关的timeout 

slave-net-timeout

The number of seconds to wait for more data from the master before the slave considers the connection broken, aborts the read, and tries to reconnect. The first retry occurs immediately after the timeout. The interval between retries is controlled by the MASTER_CONNECT_RETRY option for the CHANGE MASTER TO statement, and the number of reconnection attempts is limited by the --master-retry-count option. The default is 3600 seconds (one hour).
当slave认为连接master的连接有问题时,就等待N秒,然后断开连接,重新连接master

net_read_timeout :

The number of seconds to wait for more data from a connection before aborting the read. When the server is reading from the client, net_read_timeout is the timeout value controlling when to abort
在终止读之前,从一个连接获得数据而等待的时间秒数;当服务正在从客户端读取数据时,net_read_timeout控制何时超时。 

net_write_timeout:

The number of seconds to wait for a block to be written to a connection before aborting the write.When the server is writing to the client, net_write_timeout is the timeout value controlling when to abort。
在终止写之前,等待多少秒把block写到连接;当服务正在写数据到客户端时,net_write_timeout控制何时超时

wait_timeout

The number of seconds the server waits for activity on a noninteractive connection before closing it.
与服务器端无交互状态的连接,直到被服务器端强制关闭而等待的时间

interactive_timeout :

The number of seconds the server waits for activity on an interactive connection before closing it.
与服务器端无交互状态的连接,直到被服务器端强制关闭而等待的时间

connect_timeout

The number of seconds that the mysqld server waits for a connect packet before responding with Bad handshake. The default value is 10 seconds.

等待一个连接响应的时间 

connect_timeout:在获取连接阶段(authenticate)起作用

interactive_timeout和wait_timeout:在连接空闲阶段(sleep)起作用
net_read_timeout和net_write_timeout:则是在连接繁忙阶段(query)起作用。 

获取MySQL连接是多次握手的结果,除了用户名和密码的匹配校验外,还有IP->HOST->DNS->IP验证,任何一步都可能因为网络问题导致线程阻塞。为了防止线程浪费在不必要的校验等待上,超过connect_timeout的连接请求将会被拒绝。 

即使没有网络问题,也不能允许客户端一直占用连接。对于保持sleep状态超过了wait_timeout(或interactive_timeout,取决于client_interactive标志)的客户端,MySQL会主动断开连接。

即使连接没有处于sleep状态,即客户端忙于计算或者存储数据,MySQL也选择了有条件的等待。在数据包的分发过程中,客户端可能来不及响应(发送、接收、或者处理数据包太慢)。为了保证连接不被浪费在无尽的等待中,MySQL也会选择有条件(net_read_timeout和net_write_timeout)地主动断开连接。 

参考:

http://dev.mysql.com/doc/refman/5.5/en/server-system-variables.html

 以上就是MySQL和连接相关的timeout 的详细整理,如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

相关文章

  • 你真的会用Mysql的explain吗

    你真的会用Mysql的explain吗

    explain显示了mysql如何使用索引来处理select语句以及连接表,可以帮助选择更好的索引和写出更优化的查询语句,下面这篇文章主要给大家介绍了关于Mysql中explain用法的相关资料,需要的朋友可以参考下
    2022-03-03
  • 在Mysql上创建数据表实例代码

    在Mysql上创建数据表实例代码

    这篇文章主要介绍了如何在Mysql上创建数据表,需要的朋友可以参考下
    2014-03-03
  • MySQL出现错误代码:1055的三种解决方案(推荐!)

    MySQL出现错误代码:1055的三种解决方案(推荐!)

    当我们在查询时使用group by语句,出现错误代码:1055;执行发生错误语句,本文给大家介绍了MySQL出现错误代码:1055的三种解决方案,文中有详细的代码示例和图文供大家参考,需要的朋友可以参考下
    2024-05-05
  • 分享下mysql各个主要版本之间的差异

    分享下mysql各个主要版本之间的差异

    因为mysql的版本较多,而且又被oracle公司收购,所有很多朋友不是很清楚各个版本的区别,这里简单介绍下,方便需要的朋友
    2013-06-06
  • phpmyadmin 4+ 访问慢的解决方法

    phpmyadmin 4+ 访问慢的解决方法

    很多人用了phpmyadmin4以后的版本发现速度好像慢了很多,总结下,提供解决方法。
    2013-11-11
  • MySQL数据库索引order by排序精讲

    MySQL数据库索引order by排序精讲

    我们今天说的并不是大数据下该如何优雅的排序,如何提升排序性能的问题,我们来仔细分析说一说MySQL中的排序问题,希望可以对正在阅读的同学们有所启迪帮助
    2021-11-11
  • mysql 8.0.11 macos10.13安装配置方法图文教程

    mysql 8.0.11 macos10.13安装配置方法图文教程

    这篇文章主要为大家详细介绍了mysql 8.0.11 macos10.13安装配置方法图文教程,mysql数据库安装及配置环境变量,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-07-07
  • Mysql数据库定时备份脚本分享

    Mysql数据库定时备份脚本分享

    这篇文章主要分享了Mysql数据库的定时备份脚本,帮助大家更好的理解和使用MySQL数据库,感兴趣的朋友可以了解下
    2020-09-09
  • 如何更改MySQL数据库的编码为utf8mb4

    如何更改MySQL数据库的编码为utf8mb4

    utf8mb4编码是utf8编码的超集,兼容utf8,并且能存储4字节的表情字符。 这篇文章给大家介绍了更改MySQL数据库的编码为utf8mb4的相关知识,感兴趣的朋友一起看看吧
    2020-02-02
  • 最新版MySQL 8.0.22下载安装超详细教程(Windows 64位)

    最新版MySQL 8.0.22下载安装超详细教程(Windows 64位)

    这篇文章主要介绍了最新版MySQL 8.0.22下载安装超详细教程(Windows 64位),本文通过图文实例相结合给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-12-12

最新评论