`
dd2086
  • 浏览: 34969 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

mysql5数据库连接超时问题的解决办法

阅读更多

最近碰到一个mysql5数据库的问题。就是一个标准的servlet/tomcat网络应用,后台使用mysql数据库。问题是待机一晚上后,第二天早上第一次登录总是失败。察看日志发现如下错误:

   “com.mysql.jdbc.exceptions.jdbc4.CommunicationsException:
Communications link failure

  Last packet sent to the server was 0 ms ago.”

  经过一番调研,发现很多人都碰到过类似问题,但网上令人满意的回答并不多。mysql网站上的提问也很多,但并没有正确答案;百度知道上倒是有一个近似正确的回答。现将本人的解决办法总结一下:

  上述问题是由mysql5数据库的配置引起的。mysql5将其连接的等待时间(wait_timeout)缺省为8小时。在其客户程序中可以这样来查看其值:

   mysql﹥
  mysql﹥ show global variables like 'wait_timeout';

  +---------------+---------+

  | Variable_name | Value |

  +---------------+---------+

  | wait_timeout | 28800 |

  +---------------+---------+

  1 row in set (0.00 sec)

  28800 seconds,也就是8小时。

  如果在wait_timeout秒期间内,数据库连接(java.sql.Connection)一直处于等待状态,mysql5就将该连接关闭。这时,你的Java应用的连接池仍然合法地持有该连接的引用。当用该连接来进行数据库操作时,就碰到上述错误。这解释了为什么我的程序第二天不能登录 的问题。

  你可能会想到在tomcat的数据源配置中有没有办法解决?的确,在jdbc连接url的配置中,你可以附上“autoReconnect=true”,但这仅对mysql5以前的版本起作用。增加“validation query”似乎也无济于事。

  本人觉得最简单的办法,就是对症下药:既然问题是由mysql5的全局变量wait_timeout的缺省值太小引起的,我们将其改大就好了。

  查看mysql5的手册,发现对wait_timeout的最大值分别是24天/365天(windows/linux)。以windows为 例,假设我们要将其设为21天,我们只要修改mysql5的配置文件“my.ini”(mysql5 installation dir),增加一行:wait_timeout=1814400

  需要重新启动mysql5。

  linux系统配置文件:/etc/my.cnf

  测试显示问题解决了。
文章来自[SVN中文技术网]转发请保留本站地址:http://www.svn8.com/mysql/200906036013.html

 

分享到:
评论

相关推荐

    解决MySQL 5数据库连接超时问题

    mysql5将其连接的等待时间(wait_timeout)缺省为8小时。怎么不让它超时呢

    MySQL数据库连接超时(Wait_timeout)问题总结.pdf

    MySQL数据库连接超时(Wait_timeout)问题总结.pdfMySQL数据库连接超时(Wait_timeout)问题总结.pdfMySQL数据库连接超时(Wait_timeout)问题总结.pdfMySQL数据库连接超时(Wait_timeout)问题总结.pdfMySQL数据库连接超时...

    nodejs 关于mysql模块 连接超时自动断开解决方法

    nodejs 关于mysql模块 连接超时自动断开解决方法,在这块遇到的坑,而且坑了很久才找到的,分享只为求分

    qt中mysql超时自动断开连解决方案.txt

    可以直接通过设置来达到重连问题,方法很简单,里面有复现自动断开连接导致不能正常插入数据的方法,是自己没有积分所以才要积分

    Qt 多线程连接数据库——数据库连接池

    * 数据库连接池特点: * 获取连接时不需要了解连接的名字,连接池内部维护连接的名字 * 支持多线程,保证获取到的连接一定是没有被其他线程正在使用 * 按需创建连接,可以创建多个连接,可以控制连接的数量 * 连接...

    连接池管理连接oracle数据库

    这是用连接池技术管理连接oracle数据库的工具类代码,如果想连接MySQL,直接修改配置文件即可。

    MySQL数据库:Navicat连接和管理数据库.pptx

    数据库和表的创建和管理;;1.MySQL Workbench MySQL官方的一个图形管理工具,支持数据库的创建、设计、迁移、备份、导出、导入等功能,支持windows、linux、mac主流的操作...Navicat创建、修改和删除MySQL数据库;谢谢

    数据库连接池(database connection pool)是在 Java 中用于管理数据库连接的一种技术

    数据库连接池(database connection pool)是在 Java 中用于管理数据库连接的一种技术。它的主要目的是提高数据库连接的重用性和性能。在传统的数据库连接方式中,每次与数据库建立连接时都需要进行一系列的网络通信...

    IDEA配置连接MYSQL数据库遇到Failed这个问题解决

    本文主要介绍了IDEA配置连接MYSQL数据库遇到Failed这个问题解决,分享给大家,具体如下:   错误位置如下 我们改过来 发现就能正常连接 IDEA尝试连接Mysql时失败 在尝试用IDEA连接的Mysql时一直显示连接失败,...

    mysql数据库管理工具

    Navicat for MySQL是一个强大的MySQL数据库管理和开发工具。Navicat为专业开发者提供了一套强大的足够尖端的工具,但它对于新用户仍然是易于学习。使用了极好的图形用户界面(GUI),可以让你用一种安全和更为容易的...

    spring boot配置MySQL数据库连接、Hikari连接池和Mybatis的简单配置方法

    主要介绍了spring boot配置MySQL数据库连接、Hikari连接池和Mybatis的简单配置方法,需要的朋友可以参考下

    mysql数据库my.cnf配置文件

    # MySQL的最大连接数,如果服务器的并发连接请求量比较大,建议调高此值,以增加并行连接数量,当然这建立在机器能支撑的情况下,因为如果连接数越多,介于MySQL会为每个连接提供连接缓冲区,就会开销越多的内存,...

    Java中数据库驱动程序加载及建立连接

    Java开发中DB2、Oracle、SQL Server、Sybase、MySQL等数据库的驱动程序的加载及建立连接

    基于MySQL的数据库中间件Meituan-DBProxy.zip

    当发向某个MySQL后台的的并发查询超过某个阈值时,会进行超时等待,直到有可用的连接,其中阈值与超时等待的时间都已经参数化,可以动态配置 set backend offline不再显示节点状态 支持set ...

    dubbo中zookeeper请求超时问题:mybatis+spring连接mysql8.0.15的配置

    却卡第一个测试上,启动provider服务和Consumer服务,请求接口却始终报zookeeper请求超时错误(dubbo+zookeeper服务端重复调用三次),经过排查,我的问题是出在dao层与数据库连接的问题上(而且provider方还不报错,...

    Spring Boot如何解决Mysql断连问题

    本篇文章主要介绍了Spring Boot如何解决Mysql断连问题,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

    mysql C API

    4. 支持客户端编码类型指定,解决中文乱码问题 3. 2013年 版本是原来版本的修正版本; 主要增加功能如下: 1. 优化编码接口内存分配; 2. 增加查询和更新(读写)超时功能(需要 MYSQl 相应版本支持); 3. 增加分批查询...

    MFC通过ado类连接SQL、MYSQL、ACCESS多种数据库

    1.支持连接SQL,MYSQL、ACCESS enum DriverTypeEmum{ driverODBC = 0, driverSQLServer, driverACCESS97, driverACCESS2000, driverACCESSXP, driverEND}; 2.连接信息可通过结构体修改 typedef struct ...

    Navicat导航貓MySQL数据库管理工具

    Navicat导航貓 - 简体中文版 <br>软件简介:Navicat导航貓是一个强大的MySQL数据库管理和开发工具。Navicat导航貓为专业开发者提供了一套强大的足够尖端的工具,但它对于新用户仍然是易于学习。Navicat,使用了极...

    Mysql DNS反向解析导致连接超时过程分析(skip-name-resolve)

    MySQL数据库收到一个网络连接后,首先拿到对方的IP地址,然后对这个IP地址进行反向DNS解析从而得到这个IP地址对应的主机名。用主机名在权限系统里面进行权限判断。反向DNS解析是耗费时间的,有可能让用户感觉起来很...

Global site tag (gtag.js) - Google Analytics