`
soongbo
  • 浏览: 88649 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

mysql自动关闭服务、连接限制等问题的解决方法

    博客分类:
  • Java
阅读更多
通过mysql服务器端程序mysql Administrator调整连接参数。

将max_connections max_updates max_questions三项数据调整到很大的数字,那么你有限的操作将不会导致数据库服务的终止了
在MySQL数据库中,如果一个连接8小时没有请求和操作,就会自动断开,从而导致一些基于数据库连接的应用程序,特别是 WEB 应用程序出错。
有三个方法可以解决这个问题:
1:修改MySQL配置参数
2:修改JDBC
3:修改第三方的数据库连接池应用 Proxool.xml

方法一:这个参数的名称是 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"?>
<!-- the proxool configuration can be embedded within your own application's. Anything outside the "proxool" tag is ignored. --> <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>SELECT CURRENT_USER</house-keeping-test-sql>
</proxool>
</something-else-entirely>

三、开始菜单-运行-services.msc

找到mysql的服务并双击

点击恢复选项卡

第一次失败:默认是“不操作”,改成"重新启动服务"。

在下方的“重新启动服务:___分钟后”添上“0”表示如果服务意外终止则立即重启动。

点击确定使设置生效。

这时候你在任务管理器里结束mysql-nt进程,会发现结束不掉。
分享到:
评论

相关推荐

    MySQL服务自动停止的解决方法

    总的来说,解决MySQL服务自动停止的问题需要结合日志分析、硬件升级、软件优化和运维策略等多个方面。理解问题的根本原因,然后针对性地采取措施,是保证MySQL服务稳定运行的关键。通过持续监控、性能调优和适当的...

    mysql 连接闪断自动重连的实例

    总之,处理MySQL连接闪断并实现自动重连是一个关键的错误恢复策略,它确保了应用程序在面对网络问题时仍能保持服务连续性。通过合理的设计和编程实践,我们可以构建出健壮的数据库连接管理机制。

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

    以下是一些解决多线程下MySQL连接数过多问题的方法和策略: 1. **连接池管理**: 使用连接池(如C3P0、HikariCP、Druid等)是解决这个问题的关键。连接池能够复用已建立的数据库连接,避免频繁地创建和销毁连接,...

    mysql5.5.8安装问题(无法远程连接)

    MySQL 5.5.8 安装过程中遇到的“无法远程连接”问题通常是由于服务器配置不当或安全设置限制导致的。解决这个问题需要了解几个关键的知识点: 1. **MySQL服务安装**:首先,确保MySQL 5.5.8正确安装并成功启动。这...

    MT4连接MYSQL数据库的例子

    MT4提供了丰富的图表分析工具、自动交易策略(EA)以及信号服务等功能。然而,MT4内置的数据存储能力有限,通常不适合进行大数据处理或高级数据分析。这时,将MT4与外部数据库如MySQL结合就显得尤为重要。 本文将以...

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

    当数据库客户端与服务器之间的连接在一定时间内无任何交互(即空闲),MySQL会自动关闭这个连接以释放系统资源。通常,默认的`wait_timeout`参数值为28800秒,即8小时。这种设置对于某些需要长时间保持连接的应用...

    mysql服务端杀连接shell

    `mysqladmin`工具提供了管理MySQL服务器的多种功能,包括关闭服务、刷新权限和杀死连接等。 5. **条件判断和循环**:在脚本中,可能会使用`if`语句和循环结构,比如`for`或`while`,来遍历查询结果并根据预设条件...

    mysql数据库5.6连接包

    9. **性能优化**:连接包通常会包含一些性能优化选项,如超时设置、连接重试策略、自动重连机制等,以提高系统的稳定性和响应速度。 10. **安全性**:为了保护数据库安全,应使用SSL连接、限制连接数、定期更换用户...

    Java连接MySQL数据库失败的一种可能原因

    总之,Java连接MySQL数据库失败的原因多样,解决这个问题需要细致的排查和适当的优化策略。通过理解JDBC的工作原理、检查连接参数、确保驱动兼容性、管理好数据库连接池,我们可以有效地避免和解决此类问题。

    安卓连接MySql数据库

    在Android平台上,与传统的Web应用或桌面应用不同,由于安全性和权限限制,直接连接MySQL数据库并不常见。然而,通过特定的第三方库,如`mysql-connector-java.jar`,开发者可以实现在Android应用中连接到远程MySQL...

    还原大备份mysql文件失败的解决方法分享

    本文将详细探讨“还原大备份mysql文件失败的解决方法”,以及相关的关键参数及其作用。 当尝试还原大型MySQL数据库备份文件时,可能会遇到错误,这通常与服务器的配置限制有关。在Navicat等管理工具中,这些问题...

    mysql- -数据库连接驱动【官网资源】

    MySQL的连接驱动是Java应用程序与MySQL数据库进行交互的关键组件,允许Java程序执行SQL查询、管理数据以及处理结果。 在Java开发中,`mysql-connector-java`是MySQL提供的官方JDBC(Java Database Connectivity)...

    MySQL数据库自动生成并修改随机root密码的脚本

    为了绕过已知密码并允许修改,脚本可能使用`--skip-grant-tables`选项启动MySQL服务,这会使MySQL忽略权限表,允许不受限制的登录。 4. **修改授权表**: 在安全模式下,脚本会连接到MySQL服务器,并更新`mysql....

    mysql主从服务器设置方法

    总之,MySQL主从复制是一种有效提高数据安全性与服务连续性的解决方案,其配置涉及多个步骤,包括服务器环境的准备、数据库的安装、复制用户的创建、日志文件的配置以及从服务器的初始化和同步。在整个过程中,确保...

    java c3p0连接mysql数据库

    - C3P0是由Miquel Armandariz开发的一个开源的JDBC连接池组件,它可以提供数据库连接的自动管理,如自动创建、获取、释放和关闭连接,从而减少了数据库操作的开销。 - C3P0通过实现DataSource接口,使得应用程序...

    【荐】mysql服务性能优化—my.cnf_my.ini配置说明详解(16G内存)

    ### MySQL服务性能优化——my.cnf/my.ini配置详解 #### 背景介绍 本文档旨在详细介绍一套已在生产环境中经过验证、适用于16GB内存环境下的MySQL服务性能优化方案。通过对my.cnf/my.ini配置文件的各项关键参数进行...

    基于C++实现多线程连接池MySQL源码+项目说明+详细代码注释.zip

    2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载使用,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。...

    MySql 5.1 参考手册.chm

    2.3.12. 以Windows服务方式启动MySQL 2.3.13. 测试MySQL安装 2.3.14. 在Windows环境下对MySQL安装的故障诊断与排除 2.3.15. 在Windows下升级MySQL 2.3.16. Windows版MySQL同Unix版MySQL对比 2.4. 在Linux下安装MySQL...

    CI框架出现mysql数据库连接资源无法释放的解决方法

    通过以上方法,通常可以有效解决CI框架下MySQL数据库连接资源无法释放的问题。在实际开发中,了解和掌握这些技巧,有助于提高应用的稳定性和性能。同时,学习和使用不同的PHP框架,如CodeIgniter、Laravel、Symfony...

Global site tag (gtag.js) - Google Analytics