mysql做心跳_mysql 心跳检测
MySQL服务器所支持的最大连接数是有上限的,因为每个连接的建立都会消耗内存,因此我们希望客户端在连接到MySQL Server处理完相应的操作后,应该断开连接并释放占用的内存。如果你的MySQL Server有大量的闲置连接,他们不仅会白白消耗内存,而且如果连接一直在累加而不断开,最终肯定会达到MySQL Server的连接上限数,这会报'too many connections'的错误。所以mysql在一定时长后默认断开连接并且释放掉sleep的连接线程,已保证mysql server不会出现连接数过满的情况。而tomcat内置/c3p0/dbcp连接池则以为该连接依然有效,这种情况下,如何客户端代码向连接池获取连接,连接池就会把失效的连接返回给客户端代码,客户端代码在使用该失效的连接后就会抛出上面的异常。
mysql默认8小时数据库断开的设置参数如下:
1)interactive_timeout:
参数含义:服务器关闭交互式连接前等待活动的秒数。交互式客户端定义为在mysql_real_connect()中使用CLIENT_INTERACTIVE选项的客户端。
参数默认值:28800秒(8小时)
(2)wait_timeout:
参数含义:服务器关闭非交互连接之前等待活动的秒数。
在线程启动时,根据全局wait_timeout值或全局interactive_timeout值初始化会话wait_timeout值,取决于客户端类型(由mysql_real_connect()的连接选项CLIENT_INTERACTIVE定义)。
参数默认值:28800秒(8小时)
ps:如果在配置文件my.cnf中只设置参数wait_timeout=100,则重启服务器后进入,执行:Mysql> show variables like “%timeout%”;会发现参数设置并未生效,仍然为28800(即默认的8个小时)。查询资料后,要同时设置interactive_timeout和wait_timeout才会生效。
复现此问题很容易:设置端口连接为60s即可,然后等待2分钟后在调同样的接口并会出现。
解决思路:
1.既然连接8小时会断开连接,可以设置更长一些比如24小时?不推荐,需要修改mysql自身的配置
2.在数据库连接的URL后面加上autoReconnect=true,据说是mysql版本5.1之前有效
3.修改数据源的连接池参数,springboot的修改参数如下
spring.datasource.mysql.max-idle: '10'spring.datasource.mysql.max-wait: '10000'spring.datasource.mysql.min-idle: '5'spring.datasource.mysql.initial-size: '5'#mysql的此时连接语句
spring.datasource.mysql.validation-query: SELECT 1#当从连接池借用连接时,是否测试该连接
spring.datasource.mysql.test-on-borrow: 'false'#当连接空闲时,是否执行连接测试
spring.datasource.mysql.test-while-idle: 'true'#指定空闲连接检查、废弃连接清理、空闲连接池大小调整之间的操作时间间隔
spring.datasource.mysql.time-between-eviction-runs-millis: '18800'
详细的参数配置如下
mysql做心跳_mysql 心跳检测相关推荐
- mysql做前端_MySQL 还可以这样做
多个字段唯一性如何处理? 情景 有张表,表里有多个字段需要唯一,不能重复,否则就是重复数据,插不进去 传统做法 直接给多个字段直接加唯一索引,简单粗暴 现在做法 新增一个字段,这个字段加唯一索引,这样 ...
- mysql做四则运算_MySQL字符串进行四则运算以及比较
在mysql当中,字符串类型间进行加减乘除运算的时候,会截取字符串以数字开头的那一部分数字进行运算,如果字符串前面没有数字,那么就只能截取的数值为0,那么进行加减的时候结果都是0,进行乘除的时候结果都 ...
- 【STM32项目】- 人体检测(体温、心率、心跳、跌倒检测)
STM32人体检测(体温.心率.心跳.跌倒检测)+zigbee 笔者前言 在闲鱼有缘结识的一个哥们,帮助做的基于STM32人体检测系统,我负责硬件程序开发设计,哥们负责客户端服务器微信程序的实现,人体 ...
- Socket心跳包异常检测的C语言实现,服务器与客户端代码案例
在Socket心跳机制中,心跳包可以由服务器发送给客户端,也可以由客户端发送给服务器,不过比较起来,前者开销可能较大.本文实现的是由客户端给服务器发送心跳包,服务器不必返回应答包,而是通过判断客户在线 ...
- 华为服务器显示红色的心跳,服务器心跳检测
服务器心跳检测 内容精选 换一换 检测IDE Daemon与Host之间的心跳,用于检测Host侧的服务器是否在运行.以HwHiAiUser用户登录Host侧服务器.执行命令,检测IDE Daemon ...
- 心跳包(检测不可检测断线)
心跳包(检测不可检测断线) 作者 ricky5266 @ 2006-01-17 09:40:38 一般是用来判断对方(设备,进程或其它网元)是否正常动行,一般采用定时发送简单的通讯包,如果在指定时间段 ...
- mysql 全文检索 教程_mysql怎么做全文检索
mysql做全文检索的方法: 1.自然语言检索:IN NATURAL LANGUAGE MODE 2.布尔检索:IN BOOLEAN MODE 剔除一半匹配行以上都有的词,譬如说,每个行都有this这 ...
- 华为服务器显示红色的心跳,服务器心跳检查
服务器心跳检查 内容精选 换一换 以IDE Daemon服务器的时间为准,将Host侧服务器的时间与IDE Daemon服务器的时间同步.以HwHiAiUser用户登录Host侧服务器.执行命令,检查 ...
- mysql explain 索引_MySql中Explain详解与索引最佳实践
使用EXPLAIN关键字可以模拟优化器执行SQL语句,从而知道MySQL是 如何处理你的SQL语句的.分析你的查询语句或是结构的性能瓶颈 下面是使用 explain 的例子: 在 select 语句之 ...
最新文章
- Xamarin Visual Studio提示找不到AssemblyAttributes.cs文件
- 皮一皮:我真的没买这么多...
- ms sql 聚合事例
- VTK:可视化之AssignCellColorsFromLUT
- 一天干掉一只Monkey计划(二)——热流扰动,径向模糊
- 基于GitBook框架搭建技术文档平台
- 目标检测无痛涨点之 Generalized Focal Loss V2
- 简易 MVC框架 弃坑
- Js调用游览器的外部方法(设首页,收藏夹等游览器操作)
- mysql8连接java_JAVA连接MYSQL8.0问题
- WebRTC桌面共享手动停止
- 【SandQuant 量化投资】哈里·马科维茨:投资组合的选择
- SCCM 2012 R2部署,安装SCCM(四)
- 关于基金知识的一些整理
- 简述空串和空格串(或称空格符串)的区别。
- 携程笔试__界面测试用例
- Zabbix 3.4配置监控项及监控Linux、Windows客户端
- Python Flask Web教程006:Flask HTTP方法
- Linux学习(入门)
- 游戏美术和策划的要求
热门文章
- AD开发用户(User)属性完全手册(AD User)
- centos乱码问题(centos终端中文乱码)
- 智慧校园信息化管理系统的方案设计与实施
- wps文件丢失如何恢复?找回只需要用到一招?
- python-docx文档格式修改
- 港股ETF可以t+0交易吗?
- SphereTrace中Hit Result里的Location和ImpactPoint
- 利用JA3和JA3S识别加密数据流量
- 2018.10.26 酷狗音乐校招前端一面经历(转)
- 计算机专业英语主要句型及翻译技巧,常见五种句型英语翻译技巧