mysql 自动关闭服务、连接限制等问题的解决方法 2011-03-02 11:33 通过 mysql 服务器端程序 mysql Administrator 调整连接参数。将max_connections max_updates max_questions 三项数据调整到很大的数字, 那么你有限的操作将不会导致数据库服务的终止了在MySQL 数据库中,如果一个连接 8小时没有请求和操作,就会自动断开,从而导致一些基于数据库连接的应用程序,特别是 WEB 应用程序出错。有三个方法可以解决这个问题: 1:修改 MySQL 配置参数 2:修改 JDBC 3:修改第三方的数据库连接池应用 方法一:这个参数的名称是 wait_timeout ,其默认值为 28800 秒( 8小时)。其意义为关闭一个连接之前在这个连接上等到行动的秒数,也就是说,如果一个连接闲置超过这个选项所设置的秒数, MySQL 会主动断开这个连接。修改操作: linux 下打开/etc/f, 在属性组 mysqld 下面添加参数如下: [mysqld] interactive_timeout=28800000 wait_timeout=28800000 windows 下打开 ,增加: interactive_timeout=28800000 wait_timeout=28800000 有实践表明,没有办法把这个值设置成无限大,即永久。因此如果你无法保证你的应用程序必定在设定的秒数内至少有一次操作,那么最好用第二个方法解决这个问题。方法二:修改如下 JDBC 连接的 URL : jdbc:mysql://hostaddress:3306/schemaname?autoReconnect=true 添加 autoReconnect=true 这个参数,即能解决这个问题。方法三:配置文件( ): <?xml version="" encoding="UTF-8"?> <!-- the proxool configuration can beembedded within your own application's. Anything outside the "proxool" tag isignored. --> <something-else-entirely> <proxool> <!-- proxool 别名--> <alias>mysql</alias> <!-- 数据库连接 URL --> <driver-url> jdbc:mysql://localhost/yourDatebase?useUnicode=true&characterEncoding =UTF-8</driver-url> <!-- 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 语句一定要
mysql服务不能启动 来自淘豆网m.daumloan.com转载请标明出处.