精华内容
下载资源
问答
  • 解决MySQL自动断开连接问题

    万次阅读 2018-02-07 10:49:35
    解决mysql自动断开连接的问题 有三个方法可以解决这个问题: 1:修改MySQL配置参数 2:修改JDBC 3:修改第三方的数据库连接池应用 Proxool.xml   方法1的解决方案: 这个参数的名称是 wait_timeout,...
    解决mysql自动断开连接的问题 
    

    有三个方法可以解决这个问题

    1:修改MySQL配置参数

    2:修改JDBC

    3:修改第三方的数据库连接池应用 Proxool.xml

     

    方法1的解决方案:

    这个参数的名称是 wait_timeout,其默认值为 28800秒(8小时)。其意义为关闭一个连接之前在这个连接上等到行动的秒数,也就是说,如果一个连接闲置超过这个选项所设置的秒数,MySQL会主动断开这个连接。

    修改操作:

    linux下打开/etc/my.cnf,在属性组mysqld下面添加参数如下:

    [mysqld]

    interactive_timeout=28800000

    wait_timeout=28800000

     

    windows下打开my.ini,增加:

    interactive_timeout=28800000

    wait_timeout=28800000

    有实践表明,没有办法把这个值设置成无限大,即永久。因此如果你无法保证你的应用程序必定在设定的秒数内至少有一次操作,那么最好用第二个方法解决这个问题。

     

    方法二的解决方案:

    修改如下JDBC连接的 URL

    jdbc:mysql://hostaddress:3306/schemaname?autoReconnect=true

    添加 autoReconnect=true这个参数,即能解决这个问题。

     

    方法三的解决方案:

    配置文件(proxool.xml):

    <?xml version="1.0"encoding="UTF-8"?>

    <something-else-entirely>

    <proxool>

    <!-- proxool别名 -->

    <alias>mysql</alias>

    <!--数据库连接URL -->

    <driver-url>

    jdbc:mysql://localhost/yourDatebase?useUnicode=true&characterEncoding=UTF-8</driver-url>

    <!-- JDBC驱动名称 -->

    <driver-class>com.mysql.jdbc.Driver</driver-class>

    <!--数据库连接帐号 -->

    <driver-properties>

    <property name="user"value="root" />

    <property name="password"value="password" />

    </driver-properties>

    <!-- proxool自动侦察各个连接状态的时间间隔(毫秒),侦察到空闲的连接就马上回收,超时的销毁 -->

    <house-keeping-sleep-time>90000</house-keeping-sleep-time>

    <!--指因未有空闲连接可以分配而在队列中等候的最大请求数,超过这个请求数的用户连接就不会被接受 -->

    <maximum-new-connections>20</maximum-new-connections>

    <!--最少保持的空闲连接数 -->

    <prototype-count>3</prototype-count>

    <!--允许最大连接数,超过了这个连接,再有请求时,就排在队列中等候,最大的等待请求数由maximum-new-connections决定 -->

    <maximum-connection-count>20</maximum-connection-count>

    <!--最小连接数 -->

    <minimum-connection-count>3</minimum-connection-count>

    <!--在分配连接前后是否进行有效性测试,这个是解决本问题的关键 -->

    <test-before-use>true</test-before-use>

    <test-after-use>true</test-after-use>

    <!--用于测试的SQL语句一定要写(不知道问什么)-->

    <house-keeping-test-sql>SELECTCURRENT_USER</house-keeping-test-sql>

    </proxool>

    </something-else-entirely>

    展开全文
  • 解决mysql自动断开连接的问题

    千次阅读 2017-12-03 21:39:22
    解决mysql自动断开连接的问题 有三个方法可以解决这个问题: 1:修改MySQL配置参数 2:修改JDBC 3:修改第三方的数据库连接池应用 Proxool.xml   方法1的解决方案: 这个参数的名称是 wait_...

    解决mysql自动断开连接的问题

    有三个方法可以解决这个问题

    1:修改MySQL配置参数

    2:修改JDBC

    3:修改第三方的数据库连接池应用 Proxool.xml

     

    方法1的解决方案:

    这个参数的名称是 wait_timeout,其默认值为 28800秒(8小时)。其意义为关闭一个连接之前在这个连接上等到行动的秒数,也就是说,如果一个连接闲置超过这个选项所设置的秒数,MySQL 会主动断开这个连接。

    修改操作:

    linux下打开/etc/my.cnf,在属性组mysqld下面添加参数如下:

    [mysqld]

    interactive_timeout=28800000

    wait_timeout=28800000

     

    windows下打开my.ini,增加:

    interactive_timeout=28800000

    wait_timeout=28800000

    有实践表明,没有办法把这个值设置成无限大,即永久。因此如果你无法保证你的应用程序必定在设定的秒数内至少有一次操作,那么最好用第二个方法解决这个问题。

     

    方法二的解决方案:

    修改如下JDBC连接的 URL

    jdbc:mysql://hostaddress:3306/schemaname?autoReconnect=true

    添加 autoReconnect=true 这个参数,即能解决这个问题。

     

    方法三的解决方案:

    配置文件(proxool.xml):

    <?xml version="1.0"encoding="UTF-8"?>

    <something-else-entirely>

    <proxool>

    <!-- proxool别名 -->

    <alias>mysql</alias>

    <!-- 数据库连接URL -->

    <driver-url>

    jdbc:mysql://localhost/yourDatebase?useUnicode=true&characterEncoding=UTF-8</driver-url>

    <!-- JDBC驱动名称 -->

    <driver-class>com.mysql.jdbc.Driver</driver-class>

    <!-- 数据库连接帐号 -->

    <driver-properties>

    <property name="user"value="root" />

    <property name="password"value="password" />

    </driver-properties>

    <!-- proxool自动侦察各个连接状态的时间间隔(毫秒),侦察到空闲的连接就马上回收,超时的销毁 -->

    <house-keeping-sleep-time>90000</house-keeping-sleep-time>

    <!-- 指因未有空闲连接可以分配而在队列中等候的最大请求数,超过这个请求数的用户连接就不会被接受 -->

    <maximum-new-connections>20</maximum-new-connections>

    <!-- 最少保持的空闲连接数 -->

    <prototype-count>3</prototype-count>

    <!-- 允许最大连接数,超过了这个连接,再有请求时,就排在队列中等候,最大的等待请求数由maximum-new-connections决定 -->

    <maximum-connection-count>20</maximum-connection-count>

    <!-- 最小连接数 -->

    <minimum-connection-count>3</minimum-connection-count>

    <!-- 在分配连接前后是否进行有效性测试,这个是解决本问题的关键 -->

    <test-before-use>true</test-before-use>

    <test-after-use>true</test-after-use>

    <!-- 用于测试的SQL语句一定要写(不知道问什么)-->

    <house-keeping-test-sql>SELECTCURRENT_USER</house-keeping-test-sql>

    </proxool>

    </something-else-entirely>

    展开全文
  • MySQL 的默认设置下,当一个连接的空闲时间超过8小时后,MySQL 就会断开连接,而 c3p0 连接池则以为该被断开连接依然有效。在这种情况下,如果客户端代码向 c3p0 连接池请求连接的话,连接池就会把已经失效的...
  • mysql自动断开连接解决方案

    mysql自动断开该连接解决方案

    参考文章:

    (1)mysql自动断开该连接解决方案

    (2)https://www.cnblogs.com/xxsl/p/7146292.html


    备忘一下。


    展开全文
  • 解决数据库连接连接mysql时,每隔8小时mysql自动断开所有连接的问题

    解决数据库连接池连接MySQL时,每隔8小时mysql自动断开所有连接的问题

    最近有个问题非常讨厌,我们的工程中使用自己的连接池连接mysql数据库,可mysql数据库每隔8小时就会自动断开所有链接,连接池就失效,需要重新启动tomcat才有效,呵呵,服务器可不能老是用“人工智能”来干预啊,后来翻了一下mysql的手册,发现mysql有解决办法,下面就是最简单的解决办法:

    连接数据库的时候加上autoReconnect=true这个参数:

    jdbc:mysql://localhost:3306/accounant?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true

    但是,在mysql手册中有这样一段话: 
    驱动程序是否应尝试再次建立失效的和/或死连接? 如果允许,对于在失效或死连接上发出的查询(属于当前事务),驱动程序将抛出异常,但在新事务的连接上发出下一个查询时,将尝试再连接。不推荐使用该特性,这是因为,当应用程序不能恰当处理SQLExceptions时,它会造成与会话状态和数据一致性有关的副作用,设计它的目的仅用于下述情况,即,当你无法配置应用程序来恰当处理因死连接和/或无效连接导致的SQLExceptions时。作为可选方式,可将MySQL服务器变量“wait_timeout”设置为较高的值,而不是默认的8小时。 
    呵呵,不知道这种“副作用”会产生什么后果,难道会使tomcat崩溃??会产生“数据一致性”问题??

    保险一点的办法还是增加“wait_timeout”这个值吧,把28800设置成更大的值,这样应该就不会有什么问题了吧。 
    windows下在my.ini文中增加: 
    interactive_timeout=28800000 
    wait_timeout=28800000

    注:目前我使用的是autoReconnect这种方式,未发现什么问题。

    展开全文
  • 解决数据库连接连接mysql时,每隔8小时mysql自动断开所有连接的问题 最近有个问题非常讨厌,我们的工程中使用自己的连接连接mysql数据库,可mysql数据库每隔8小时就会自动断开所有链接,连接池就失效,需要重新...
  • I'm using red5 1.0.0rc1 to create an online game.I'm connecting to a MySQL database using a jdbc mysql connector v5.1.12it seems that after several hours of idle my application can continue running qu...
  • MySQL 的默认设置下,当一个连接的空闲时间超过8小时后,MySQL 就会断开连接,而 c3p0 连接池则以为该被断开连接依然有效。 假设你的数据库是mysql,如果数据源配置不当,将可能发生经典的“8小时问题”。原因是...
  • 解决mysql经常断开重连的问题

    千次阅读 2019-08-28 10:13:47
    解决mysql自动断开连接的问题 有三个方法可以解决这个问题: 1:修改MySQL配置参数 2:修改JDBC 3:修改第三方的数据库连接池应用 Proxool.xml 方法1的解决方案: 这个参数的名称是 wait_timeout,其默认值为...
  • mysql 8小时断开连接问题:mysql的默认设置下,当一个连接的空闲时间超过8小时后,mysql 就会断开连接,而连接池认为连接依然有效。在这种情况下,如果客户端代码向连接池请求连接的话,连接池就会把已经失效的...
  • 解决数据库连接连接mysql时,每隔8小时mysql自动断开连接的问题 文章分类:数据库 解决数据库连接连接mysql时,每隔8小时mysql自动断开所有连接的问题 最近有个问题非常讨厌,我们的工程中...
  • MySQL连接断开

    千次阅读 2017-06-27 10:10:05
    介绍了MySQL数据库的连接断开。以及一些基本的数据库的操作
  • c3p0连接mysql 数据库(解决掉线问题) 2009-06-05 17:47最近项目用到了hibernate3.0 c3po mysql的数据层组合,开发部署非常顺利,但每天早上访问应用都抛出 Could not open Hibernate session for transaction ...
  • mysql 连接断开的问题

    千次阅读 2013-03-04 11:44:27
    也就是说5个小时以前,客户端想服务器端发送了最后一个数据包,但是mysql服务器端的超时时间设置为4个小时,也就是说这个连接在服务器端进行了断开,但连接池中并没发下这个链接被断开,导致使用了一个已经断开的...
  • 解决mysql 8小时 空闲后连接断开 只要我们在my.ini(WINDOWS系统下)或my.cnf(UNIX或LINUX系统下)添加下面的参数设置,(如果文件里没有就添加,有就改变设置看我们要设置多久)。 像下面设置就一年不用愁了,...
  • 主要介绍了解决mysql服务器在无操作超时主动断开连接的情况,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  •  项目中使用连接池与Mysql连接,在8小时后,偶而会有数据库异常抛出 原因:  mysql的连接后,如果没有数据传输,在默认的8小时后,会自动断开连接。使用了数据连接池时,连接池并不知道其中的连接已经无效,还会...
  • MySQL自动断开连接解决方法

    千次阅读 2016-07-18 09:22:24
    com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2625) com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2551) com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1861...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 27,111
精华内容 10,844
关键字:

如何解决mysql连接断开

mysql 订阅