mysql连接失活_Mysql 参数autoReconnect=true 解决8小时连接失效

2023-11-16

1. 即使在创建Mysql时url中加入了autoReconnect=true参数,一但这个连接两次访问数据库的时间超出了服务器端wait_timeout的时间限制,还是会CommunicationsException: The last packet successfully received from the server was xxx milliseconds ago.2. 服务器端的参数可以用show global variables like 'wait_timeout';set global wait_timeout=10;来进行设置,但是wait_timeout值不应该设的太高.3. 较好的策略是对处于idle状态的connection定时发送一个sql,来刷新服务器上的时间戳.这可以使用c3p0r的连接池.http://bzhang.iteye.com/blog/3218324. 对于tomcat的server.xml中使用的连接池,http://tomcat.apache.org/tomcat-6.0-doc/jndi-datasource-examples-howto.html,http://commons.apache.org/dbcp/configuration.html使用DBCP的连接池可以采用4.1 设置validationQuery,这样每次borrow(默认为开启)时会通过这个sql校验连接的有效性,但是增加了时间.4.2 设置timeBetweenEvictionRunsMillis="10000" minEvictableIdleTimeMillis="10000" 依赖evictor thread线程来把超时的连接关闭.4.3 设置testWhileIdle="true" timeBetweenEvictionRunsMillis="10000" validationQuery="select 1" 使得定时去用query检测处于idle状态的连接,也就刷新了服务器端的时间.5.每次提交的最大packet大小show global variables like 'max_allowed_packet';set global max_allowed_packet=1024*1024;6. SQLyog 中连接参数的设置6.1 在SQLyog中的设置 set autocommit=0,这样当前连接的自动提交为false,可以控制事务了.6.2 begin; 事务开始6.3 select * from test where 1=1 and id =1 for update;这样就把选到的记录行锁上了,再开一个SQLyog,也执行以上相同的操作,就会一直wait在那里.6.4 commit; 提交6.5 rollback; 回滚6.6 set autocommit=0;后应该加上set transaction isolation level read committed;这样其它客户端就能看到commit的数据,疑问:如果不设置set transaction isolation level read committed;如果两个客户端都select 相同的数据,一个客户端修改然后提交,另一个客户端不提交当前事务的前提下,去执行select ,取不到另一客户端提交的数据,不知道SQLyog默认的事务级别是什么样的.7. SQLyog中查看mysql的状态,show global variables like '%lock%'; 是个好方法.对于事务锁(例如for update)报Lock wait timeout exceeded ,只能通过修改my.ini文件innodb_lock_wait_timeout = 100;才能生效.8. linux下修改用户密码 mysqladmin -u root password "new_pass"====================================================================使用Connector/J连接MySQL数据库,程序运行较长时间后就会报以下错误:Communications link failure,The last packet successfully received from the server was *** millisecond ago.The last packet successfully sent to the server was ***  millisecond ago。其中错误还会提示你修改wait_timeout或是使用Connector/J的autoReconnect属性避免该错误。后来查了一些资料,才发现遇到这个问题的人还真不少,大部分都是使用连接池方式时才会出现这个问题,短连接应该很难出现这个问题。这个问题的原因:MySQL服务器默认的“wait_timeout”是28800秒即8小时,意味着如果一个连接的空闲时间超过8个小时,MySQL将自动断开该连接,而连接池却认为该连接还是有效的(因为并未校验连接的有效性),当应用申请使用该连接时,就会导致上面的报错。1.按照错误的提示,可以在JDBC URL中使用autoReconnect属性,实际测试时使用了autoReconnect=true&failOverReadOnly=false,不过并未起作用,使用的是5.1版本,可能真像网上所说的只对4之前的版本有效。2.没办法,只能修改MySQL的参数了,wait_timeout最大为31536000即1年,在my.cnf中加入:[mysqld]wait_timeout=31536000interactive_timeout=31536000重启生效,需要同时修改这两个参数。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

mysql连接失活_Mysql 参数autoReconnect=true 解决8小时连接失效 的相关文章

  • Uniapp 截图或者生成海报的方法

    需求 uniapp移动端需要生成一张当前界面的海报 方案一 类似于手机按钮截图效果 实现代码如下 doSaveScreen let this this uni showLoading 加载框 title 保存中 mask true var
  • STM32F103C8T6详细引脚表

    今天准备画一个STM32F103C8T6的最小系统板 就去STM32F103C8的数据手册查看了一下相应的引脚 因为数据手册里面的引脚表有中容量的多种封装描述 看上去比较麻烦 我就单独做了一个LQFP48脚的引脚表 方便后期自己画封装 就图
  • Spring+Mybatis 查询所有数据时发生异常:org.apache.ibatis.reflection.ReflectionException: There is no getter for

    Spring Mybatis框架整合时 根据条件查询数据 发生异常 Caused by org apache ibatis reflection ReflectionException There is no getter for prop
  • JavaScript分支语句总结

    注 js变量算术运算符和逻辑运算符知识点的补充 1 的区别 表示值相等 表示值相等 数据类型也必须相等 案例 的区别 表示值相等 表示值相等 数据类型也必须相等 var x 10 var y 10 console log x y true
  • 图像降质

    1 逆滤波和维纳滤波 附Matlab完整代码 https blog csdn net weixin 41730407 article details 80455612 2 python 运动模糊 退化模型 点扩散函数 逆滤波与维纳滤波 ht
  • GG-CNN代码学习

    文章目录 1 源码网址 https github com dougsm ggcnn 2 数据集格式转化 下载后的康奈尔数据集 解压完之后里面的格式 里面的 tiff图像通过 txt文件转化得到 python m utils dataset
  • layui 数据表格 sort排序,filter过滤——soulTable

    1 效果图 2 页面代码 div class fp table style margin left 0 5 width 86 table style margin bottom 0px table div 3 js代码 引入扩展组件 lay
  • 【学vue跟玩一样】快速搞懂vue渲染

    Vue的渲染分为条件渲染和列表渲染 那究竟什么式渲染呢 1 条件渲染 1 v if写法 1 v if 表达式 2 v else if 表达式 3 v else 表达式 和我们曾经学过的JavaScript里面的if语句几乎一样 适用于 切换
  • Quartz misfire详解

    一 前言 最近在学习Quartz 看到misfire这一部分 发现官方文档上讲解的很简单 没有看明白 然后去搜索了一下网上的讲解 发现讲的也都大同小异 也没有看明白 最后只能自己动手做测试 总结了一下 这篇文章把自己总结的记录下来 方便自己
  • 使用 HEX 参数在 Python 中实现六边形图像的显示数据关系

    使用 HEX 参数在 Python 中实现六边形图像的显示数据关系 在数据可视化中 六边形图被广泛应用于显示多元数据之间的关系 本文将介绍如何使用 Python 中的 hex 参数来设置六边形图像 并展示如何使用这种方法来显示数据的关系 首
  • Spring Boot —— Security 控制按钮权限

    文章目录 Spring Boot Security 控制按钮权限 前言 实现 引入对应的依赖 配置标签 Spring Boot Security 控制按钮权限 前言 在freemarker中 通过Security根据用户角色控制页面按钮或菜
  • win8.1仅允许运行使用网络级别身份认证的远程桌面计算机连接,使用Win10通过Mstsc远程连接 Server 2012 R2 时出现 身份验证错误,要求的函数不受支持,这可能是由于CredSSP...

    使用Win10通过Mstsc远程连接 Server 2012 R2 时出现 身份验证错误 要求的函数不受支持 这可能是由于CredSSP加密Oracle修正 最终解决方法 原因 因为CVE 2018 0886 的 CredSSP 2018
  • unity shader 之基础四 数学

    4 2 笛卡尔坐标系 笛卡尔坐标系分为二维和三维坐标系 4 2 1二位坐标系 OpenGL 和 DirectX 二位坐标系是不同的 OpenGL 和 DirectX 是不同的图形访问接口 用来和硬件交互的 二维坐标系 是可以相互转换的 既
  • 【经典】centos 安装 mysql

    CentOS第一次安装MySQL的完整步骤 目录 1 官方安装文档 2 下载 Mysql yum包 3 安转软件源 4 安装mysql服务端 5 首先启动mysql 6 接着检查mysql 的运行状态 7 修改临时密码 7 1 获取MySQ
  • [转] 英文写作中分号和冒号的使用

    我们先来了解下分号和冒号的作用 分号的主要作用是来连接两个在语法上平等的成分 冒号的主要作用是引起读者对冒号后面内容的注意力 下面总结下规则 用分号的情况 1 用分号连接两个独立的句子 两个独立的句子不能够用逗号隔开 如果用逗号 必须逗号后
  • idea忽略.iml文件

    1 点击file文件下的设置中 2 点下file types 文件类型 进入到file types窗口 如图 然后点击忽略文件那添加需要忽略的类型
  • 自用HTML+CSS学习笔记

    HTML CSS学习笔记 1 Web标准 Web标准也称为网页标准 由一系列的标准组成 大部分由W3C World Wide Web Consortium 万维网联盟 负责制定 由三个组成部分 HTML 负责网页的结构 页面元素和内容 CS
  • IT的教育

    IT的教育 李颜芯 CSDN的网友大家好 欢迎大家收看这一起的CSDN视频访谈节目 今天我们请到了两位嘉宾 一位是 金旭亮 老师 一位是 金戈 老师 两位老师作一下自我介绍怎么样 金旭亮 我先介绍一下吧 我叫金旭亮是北京理工大学的讲师 我在
  • 怎样把pdf转换成word-多语言ocr支持

    http jingyan baidu com article 86fae34699bb4e3c49121a23 html PDF格式良好的视觉阅读性和通用性使得PDF文件的使用越来越广泛了 网络上的PDF资料也越来越多 但是我们往往想要提出

随机推荐