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

mysql连接超时问题

阅读更多

2010-06-30 15:39:50,474 INFO [com.sumavision.tjwh.service.ArticleServiceImpl] - **********定时调度,拷贝数据库内容到本地开始************
2010-06-30 15:39:52,618 INFO [org.springframework.beans.factory.xml.XmlBeanDefinitionReader] - Loading XML bean definitions from class path resource [org/springframework/jdbc/support/sql-error-codes.xml]
2010-06-30 15:39:52,739 INFO [org.springframework.jdbc.support.SQLErrorCodesFactory] - SQLErrorCodes loaded: [DB2, Derby, H2, HSQL, Informix, MS-SQL, MySQL, Oracle, PostgreSQL, Sybase]
2010-06-30 15:39:52,882 WARN [org.springframework.jdbc.support.SQLErrorCodesFactory] - Error while extracting database product name - falling back to empty error codes
org.springframework.jdbc.support.MetaDataAccessException: Error while extracting DatabaseMetaData; nested exception is com.mysql.jdbc.exceptions.MySQLNonTransientConnectionException: No operations allowed after connection closed.Connection was implicitly closed due to underlying exception/error:


** BEGIN NESTED EXCEPTION **

com.mysql.jdbc.CommunicationsException
MESSAGE: Communications link failure due to underlying exception:

** BEGIN NESTED EXCEPTION **

java.io.EOFException

STACKTRACE:

java.io.EOFException
 at com.mysql.jdbc.MysqlIO.readFully(MysqlIO.java:1907)
 at com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:2298)
 at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2797)
 at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1567)
 at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1659)
 at com.mysql.jdbc.Connection.execSQL(Connection.java:3112)
 at com.mysql.jdbc.Connection.execSQL(Connection.java:3041)
 at com.mysql.jdbc.Statement.execute(Statement.java:686)
 at org.apache.commons.dbcp.DelegatingStatement.execute(DelegatingStatement.java:264)
 at org.springframework.jdbc.core.JdbcTemplate$1ExecuteStatementCallback.doInStatement(JdbcTemplate.java:422)
 at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:396)
 at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:429)
 at com.sumavision.tjwh.dao.ArticleDaoImpl.deleteAll(ArticleDaoImpl.java:182)
 at com.sumavision.tjwh.service.ArticleServiceImpl.schoduleJobCopyData(ArticleServiceImpl.java:107)
 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
 at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
 at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
 at java.lang.reflect.Method.invoke(Method.java:597)
 at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:310)
 at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182)
 at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149)
 at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:106)
 at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
 at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
 at $Proxy48.schoduleJobCopyData(Unknown Source)
 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
 at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
 at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
 at java.lang.reflect.Method.invoke(Method.java:597)
 at org.springframework.util.MethodInvoker.invoke(MethodInvoker.java:276)
 at org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean$MethodInvokingJob.executeInternal(MethodInvokingJobDetailFactoryBean.java:260)
 at org.springframework.scheduling.quartz.QuartzJobBean.execute(QuartzJobBean.java:86)
 at org.quartz.core.JobRunShell.run(JobRunShell.java:202)
 at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:531)


** END NESTED EXCEPTION **

 

Last packet sent to the server was 3 ms ago.
在天津中间件演示项目中,现场出现该问题,解决办法:在MySql数据库的安装目录下my.ini文件中,加入

wait_timeout=31536000

以下资料未验证过:

1、一般的解决方法大多是在数据库连接字符串中增加“autoReconnect=true ”选项。但是这只对mysql4以前的版本有效。在最新的mysql中是无效的。其实要解决这个问题也有一个简单的方法,就是修改mysql的启动参数。 缺省情况下mysql的timeout时间是28800秒,正好是8小时,增加一个0就可以了。

同理也可以在" my.ini"文件中增加此参数。

mysqld-nt --default-table-type=innodb --interactive_timeout=288000

2、从根源入手,设置mysql的wait_timeout为31536000(一年)。

mysql> show variables;

| wait_timeout                    | 28800

| interactive_timeout             | 28800      

" my.ini"文件中修改此参数

[mysqld]
wait_timeout=31536000
interactive_timeout=31536000

重启服务,OK!

 

 

 

 

 

分享到:
评论

相关推荐

    关于MySQL的wait-timeout连接超时问题报错解决方案.docx

    MySQL 连接超时问题解决方案 wait_timeout 参数的重要性 在 MySQL 中,wait_timeout 参数是控制连接超时的关键参数。当该参数设置的太大时,可能会导致 MySQL 中大量的 SLEEP 进程无法及时释放,拖累系统性能。...

    关于MySQL的wait-timeout连接超时问题报错解决方案.pdf

    MySQL 连接超时问题解决方案 在 MySQL 中,wait_timeout 参数控制着连接的超时时间,如果设置的过大,可能会导致大量的 SLEEP 进程无法及时释放,拖累系统性能;反之,如果设置的过小,可能会遭遇到“MySQL has ...

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

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

    mysql 8小时空闲后连接超时的问题

    总结来说,解决MySQL8小时空闲后连接超时问题的方法包括修改MySQL的启动参数或配置文件,以及优化应用程序的数据库连接管理,如使用连接池。同时,关注数据库性能优化,如使用合适的查询语句和数据类型,可以提升...

    c#socket连接池和连接超时时间设置

    提供一个c# socket连接池设计的例子,解决socket并发连接限制的问题,并且提供一种设置连接超时时间的方法,默认连接超时时间是不能设置的,提供了socket网络发送数据的接口.可用于pos小票打印机通讯。

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

    MySQL数据库的连接超时问题,通常表现为Wait_timeout错误,指的是当客户端与服务器之间的连接在指定时间内没有进行任何数据交互,数据库会自动断开这个连接,以释放资源并防止不必要的资源占用。这一特性在MySQL中是...

    mysql连接驱动jar包

    这篇文档将深入探讨MySQL连接驱动jar包的相关知识点,包括其作用、安装与配置、使用方法以及常见问题。 首先,了解MySQL连接驱动的作用。当Java程序需要访问MySQL数据库时,必须加载对应的JDBC驱动,即mysql-...

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

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

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

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

    MySQL wait_timeout连接超时

    MySQL的`wait_timeout`连接超时问题通常出现在长时间无操作的数据库连接上,服务器会自动关闭这些连接以释放资源。这种现象在应用中可能导致突然的数据通信中断,表现为“Communications link failure”等错误,提示...

    c# mysql数据库连接池实现

    可以根据应用需求调整连接池的参数,如最大连接数、空闲超时时间等。这些参数可以通过`UseMySql`方法中的`mySqlOptions`进行设置。 7. 性能优化 连接池可以减少创建和关闭连接的开销,提高系统性能。但过多的空闲...

    mysql连接池java源码

    MySQL连接池在Java应用开发中扮演着至关重要的角色,它是一种管理数据库连接的机制,能够有效地提高数据库操作的性能和效率。在这个项目中,我们看到的是一个纯手工编写的Java源码实现,不依赖任何外部数据库驱动,...

    MySql数据库连接池C#代码(有注释含测试代码)

    - 超时策略:设置超时机制,避免因长时间未使用的连接占用资源。 - 监控和日志:监控连接池的使用情况,记录异常,便于调试和优化。 总的来说,这个代码示例提供了一个基础的MySQL数据库连接池实现,可以作为学习和...

    Mysql连接池

    MySQL连接池是数据库管理中的一个重要概念,主要用于优化数据库应用程序的性能和资源管理。在高并发的Web应用中,频繁地创建和销毁数据库连接会消耗大量系统资源,增加延迟,而连接池通过复用已建立的数据库连接来...

    MySQL连接抛出Authentication Failed错误的分析与解决思路

    【MySQL连接错误分析与解决】 在使用MySQL数据库时,可能会遇到“Authentication Failed”错误,这通常意味着客户端在尝试连接数据库时认证失败。错误信息显示“Reading from the stream has failed”,表明在数据...

    tomcat中MySQL连接池配置 - feng - BlogJava.mht

    此文档主要是tomcat中MySQL连接池配置 - feng - BlogJava

    线程池和mysql连接池的实现

    线程池和MySQL连接池是两种重要的资源管理技术,在多线程编程和数据库操作中扮演着关键角色。本文将详细探讨这两个概念,并结合在Ubuntu 12.04环境下使用C++实现线程池和MySQL连接池的方法。 线程池是一种优化并发...

    网络收集 C++ MYSQL 连接池 可编译运行

    本资源包含了一个可编译运行的C++ MySQL连接池示例,这对于理解和实践C++中的数据库管理是非常有价值的。 首先,连接池的概念是这样的:它是一组预先初始化的数据库连接,程序在需要时可以从池中获取一个已存在的...

    多线程下mysql连接数过多解决demo

    在多线程环境中,MySQL连接数过多的问题是一个常见的性能瓶颈,尤其在高并发的应用场景下。这通常是由于每个线程创建一个独立的数据库连接导致的,当并发线程数量增加时,连接池中的连接数量也随之增加,如果超过...

    Qt Mysql超时断开后自动重连完美解决方法

    网上找了很多解决办法,几乎没有一个能完美解决问题的,大体都是首先执行一段query后看返回结果,但这个办法也太无用和耗费资源了吧...因为断开后isOpen和isValid都会返回true,所以不能从这里入手...

Global site tag (gtag.js) - Google Analytics