jdbc autoReconnect=true 参数设置导致 slow log 爆表。
1.过程
同事按照文档上配置了下面的jdbc url:
jdbc:mysql://ip:port/db?autoReconnect=true&useUnicode=true&characterEncoding=utf-8
结果导致了 mysql slow log 出现了满屏的 ping 命令,
# User@Host: db[db] @ [ip]
# Query_time: 0.000017 Lock_time: 0.000000 Rows_sent: 0 Rows_examined: 0 Logical_reads: 0 Physical_reads: 0
SET timestamp=1456991083;
# administrator command: Ping;
$ ll -h mysqlslow20161115.log
-rw-rw---- 1 dba dba 58G Nov 15 14:17 mysqlslow20161115.log
最后我找到其他同事询问他们怎么配置的,为什么他们的业务没有生成这么多日志呢?最后对比以后发现,其他同事配置了 dbcp 框架,通过dbcp 框架来提供连接池。
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" value="${jdbc.driverClassName}" />
<property name="url" value="${jdbc.url}" />
<property name="username" value="${jdbc.user}" />
<property name="password" value="${jdbc.password}" />
<property name="maxActive" value="" />
<property name="maxIdle" value="" />
<property name="maxWait" value="" />
<property name="defaultAutoCommit" value="true" />
<property name="minEvictableIdleTimeMillis" value="" />
<property name="timeBetweenEvictionRunsMillis" value="" />
</bean>
其中 jdbc.url 参数和前面一个同事么有区别(ip port db 除外)。
最后解决办法:
考虑到再让他们加框架比较费劲,就让开发把 autoReconnect=true 取消掉了。tail -f mysqlslow.log 没有发现新增的了。看来裸加一个 autoReconnect 还是很不靠谱的。最后推荐一篇我搜索时候找到的一篇连接:https://www.percona.com/blog/2010/05/05/checking-for-a-live-database-connection-considered-harmful/
jdbc autoReconnect=true 参数设置导致 slow log 爆表。的更多相关文章
- jmeter—JDBC request动态参数设置
jmeter—JDBC request动态参数设置 重要参数说明: Variable Name:数据库连接池的名字,需要与JDBC Connection Configuration的Variable ...
- INITIAL参数设置导致TRUNCATE TABLE不能降低高水位线案例
在一个数据库使用下面SQL找出了一批需要降低高水位线的表,其中有几个表没有数据,于是我打算用TRUNCATE来降低高水位线HWM SELECT a.owner, a.segment_na ...
- MySQL 参数autoReconnect=true 解决8小时连接失效
<!-- dataSource加参数 处理mysql 8小时自动断开连接的问题 --> <property name="testWhileIdle" va ...
- MySQL 参数autoReconnect=true 解决8小时连接失效(转)
即使在创建Mysql时url中加入了autoReconnect=true参数,一但这个连接两次访问数据库的时间超出了服务器端wait_timeout的时间限制,还是会CommunicationsExc ...
- redis专题--slow log详解
SLOWLOG subcommand [argument] 什么是 SLOWLOG Slow log 是 Redis 用来记录查询执行时间的日志系统. 查询执行时间指的是不包括像客户端响应(talki ...
- 连接数据库超时设置autoReconnect=true
1,问题现象: com.mysql.jdbc.CommunicationsException: The last packet successfully received from the serve ...
- JIRA应用的内存参数设置不当+容器没有对资源进行限制导致服务挂掉的例子
背景: 应用的部署结构是这样的:使用rancher管理的Docker集群,有三台物理主机,二十多个Docker容器, 提供的功能是问题跟踪(JIRA),文档管理(Confluence),代码托管(sv ...
- mysql的jdbc.url携带allowMultiQueries=true参数的作用及其原理
如下配置 jdbc.url=jdbc:mysql://127.0.0.1:3306/chubb_2?autoReconnect=true&useUnicode=true&charact ...
- jqGrid的autoencode参数设置为true在客户端可能引发的编码问题
不久前使用jqGrid+MVC做过一段时间开发. 一开始,分页参数几乎都是默认值,jqGrid的分页功能很好用. 考虑到each input is evil,我们的系统对安全性又有较高要求,所以,为了 ...
随机推荐
- xlrd读取多个excel电子表数据
import sys import xlrd import traceback def ReadData(FileName): try: workBook = xlrd.open_workbook(F ...
- [技巧.Dotnet]轻松实现“强制.net程序以管理员身份运行”。
使用场景: 程序中不少操作都需要特殊权限,有时为了方便,直接让程序以管理员方式运行. (在商业软件中,其实应该尽量避免以管理员身份运行.在安装或配置时,提前授予将相应权限.) 做法: 以C#项目为例: ...
- nodejs npm常用命令
npm是一个node包管理和分发工具,已经成为了非官方的发布node模块(包)的标准.有了npm,可以很快的找到特定服务要使用的包,进行下载.安装以及管理已经安装的包. 1.npm install m ...
- Xocde4与Xcode3的模板比较
XCode 4.2.1 项目的模版截图: Single View Application This template provides a starting point for an applicat ...
- ThinkPHP 3.2.3 文件上传时间目录问题
上传文件的代码如下 在上传文件的时候会默认生成时间目录, 但是有些时候,并不想生成时间目录,而是储存在我们自己定义的目录下,可以这样做: 只需要添加 $upload->autoSub = fal ...
- 数据导出Excel
package com.jy.pjbj.web.action.util; import java.io.File;import java.util.List; import javax.xml.rpc ...
- PHP高并发高负载系统架构
PHP高并发高负载系统架构 1.为什么要进行高并发和高负载的研究 1.1.产品发展的需要 1.2.公司发展的需要 1.3.当前形式决定的 2.高并发和高负载的约束条件 2.1.硬件 2.2.部署 2. ...
- linux不知道文件在哪,想查找文件内的字符串
find . -name "*.*" |xargs grep "xxx"
- asp.net运行时错误:没有为扩展名".cshtml"注册的提供程序。
解决方法: 一. 在machine.config或web.config中的<compilation><buildProviders>节注册一个.请确保所注册的提供程序具有包含 ...
- 【转】linux yum命令详解
yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及SUSE中的Shell前端软件包管理器.基於RPM包管理,能够从指定的服务器自动下载RP ...