MySQL频繁超时原因调查

1.排查原因

1.1.查询中大量数据被发送,由于数据传输时间不够导致

增加net_read_timeout的值。

修改 MySQL 的配置文件(通常是 my.cnfmy.ini 文件)。

在配置文件中,找到 [mysqld] 部分,并添加或修改以下行:

复制代码

iniCopy Code [mysqld]net_read_timeout = 60 #这里是60 我们修改成了600

保存文件后,重新启动 MySQL 服务

超时问题没有改善

1.2.初次连接时,连接时间设定太少

可以增加connect_timeout的值改善。

永久改变 connect_timeout 的值,使其在 MySQL 重启后仍然生效,需要修改 MySQL 的配置文件(通常是 my.cnfmy.ini 文件)。

在配置文件中,找到 [mysqld] 部分,并添加或修改以下行:

复制代码

iniCopy Code [mysqld]connect_timeout = 20 # 这里是20 我们设置成120

保存文件后,重新启动 MySQL 服务

超时问题没有改善

1.3.、BLOB值太大的问题

调整配置文件max_allowed_packet。

就更新大量的数据来说,可以进行两个方面的设置:将系统变量net_read_timeout设置得大一点,再将配置文件中的max_allowed_packet设置大一点。

max_allowed_packet 是 MySQL 服务器允许的最大数据包大小。默认情况下,这个值为 4MB。如果你的更新操作涉及到更大的数据量,例如大型 BLOB 数据的插入或更新,你可能需要增加这个参数的设置。

在 MySQL 的配置文件(如 my.cnfmy.ini)中,设置 max_allowed_packet

复制代码

[mysqld] max_allowed_packet = 100M # 设置 max_allowed_packet 为 100MB

超时问题没有改善

1.4.、排查网络带宽问题

  1. 数据传输速度 :如果数据库服务器和客户端之间的网络带宽有限,大数据的传输速度可能会变慢。这可能导致客户端在尝试读取或写入大量数据时超过了 net_read_timeoutnet_write_timeout 的设置,从而导致连接超时。

  2. 响应时间:网络带宽限制可能导致数据包的延迟增加,尤其是在数据量大或者连接数多的情况下。这可能使得客户端请求的响应时间变长,进而可能触发超时设置

解决方案: 增加网络带宽从原有的50MB,增加到100M

超时问题没有改善

1.5.索引,连接池问题

询问金磊 数据库创建的时候有设置索引和连接池

排查应该不是索引,连接池造成的影响

超时问题没有改善

1.6.交互与非交互超时时间过短导致

  1. wait_timeout

    1. 作用:控制非交互式连接的超时时间。这类连接通常是由应用程序或脚本通过连接池管理的,比如 Web 应用与数据库之间的连接。

    2. 影响 :如果一个连接在设定的 wait_timeout 秒内没有任何活动(例如查询、更新等),MySQL 会自动关闭这个连接。这可以避免长时间空闲的连接占用数据库资源。

  2. interactive_timeout

    1. 作用:控制交互式连接的超时时间。这类连接通常是用户直接通过命令行或 GUI 工具与数据库交互的连接。

    2. 影响 :与 wait_timeout 类似,但 interactive_timeout 更适用于用户交互时的连接。如果一个用户连接在设定的 interactive_timeout 秒内没有任何活动,MySQL 会自动关闭这个连接。

在 MySQL 的配置文件(如 my.cnfmy.ini)中,设置 wait_timeout,interactive_timeout:

复制代码

[mysqld] wait_timeout = 31536000 interactive_timeout = 31536000

超时问题没有改善

1.7.底层设备有个会话3600s老化的机制

底层设备有个会话3600s老化的机制,两端没有交互的话会话是会断开的,所以需要配置keepalived或者改成无状态安全组

相关推荐
islandzzzz21 分钟前
三表查询SQL怎么写?----小白初学+案例引入
数据库
电商API_1800790524725 分钟前
构建高效可靠的电商 API:设计原则与实践指南
运维·服务器·爬虫·数据挖掘·网络爬虫
晓枫-迷麟1 小时前
【nano与Vim】常用命令
linux·编辑器·vim
卡布奇诺-海晨1 小时前
MySQL的MVCC机制
数据库·mysql
布伦鸽1 小时前
C# WPF 左右布局实现学习笔记(1)
笔记·学习·c#·wpf
LucienShui1 小时前
Webhook 配置备忘
linux·运维·webhook
hao_wujing1 小时前
攻击模型的恶意行为检测
网络·数据库·php
Clownseven2 小时前
“轻量应用服务器” vs. “云服务器CVM”:小白入门腾讯云,哪款“云机”更适合你?(场景、配置、价格对比解析)
运维·服务器·腾讯云
超级土豆粉2 小时前
从0到1写一个适用于Node.js的User Agent生成库
linux·ubuntu·node.js
PH_modest2 小时前
【Linux跬步积累】—— 网络编程套接字(二)
linux·运维·网络