• MySQL 8小时问题


    基于 MySQL的Web网站在一段时间后会经常处于无法响应的状态,或者响应非常慢,这是由于数据库连接自动关闭了。
    在MySQL Command Line Client中执行show variables like '%timeout%'
    中我们可以看到有两个变量wait_timeout和interactive-timeout,它们的默认值都为28800秒,即为8小时。
    也就是说默认情况下,Mysql在经过8小时(28800秒)不使用后会自动关闭已打开的连接。 

    1.为了解决这个问题,对于MySQL5之前的版本,如Mysql4.x,只需要修改连接池配置中的URL,添加一个参数:autoReconnect=true,
    如果是MySQL5及以后的版本,则需要修改my.cnf(或者my.ini)文件,在[mysqld]后面添加上: 

    wait_timeout = n 

    interactive-timeout = n 

    n为服务器关闭交互式连接前等待活动的秒数。 

    2. ruguoc3p0 连接池解决方法
                    <property name="testConnectionOnCheckout" value="false"/>
    <property name="testConnectionOnCheckin" value="false"/>
    当属性为true 时可以解决。因性能消耗大请只在需要的时候使用它。如果设为true那么在每个connection提交的时候都将校验其有效性。建议使用 idleConnectionTestPeriod或automaticTestTable 等方法来提升连接测试的性能
     <property name="idleConnectionTestPeriod" value="60"/> 隔多少秒检查所有连接池中的空闲连接,默认为0表示不检查;

     <property name="automaticTestTable" value="c3p0_connection_testtable" />
  • 相关阅读:
    Linux服务器上监控网络带宽命令
    boost编译很慢的解决方法
    python select poll
    python SocketServer
    boost implicit_cast
    函数名 函数名取地址 区别
    STL make_heap push_heap pop_heap sort_heap
    STL: fill,fill_n,generate,generate_n
    gcc __attribute__
    Linux命令 lsof使用
  • 原文地址:https://www.cnblogs.com/shihao/p/2706937.html
Copyright © 2020-2023  润新知