DanielPop 2015-04-09 10:21 采纳率: 33.3%
浏览 1739
已采纳

MySQL8小时自动断开连接

最近项目中使用连接池连接MySQL数据库, 过了8小时没人使用之后再使用就报错了
网上看了很多种解决方法, 但是没有满意答案
1. 修改mysql wait_timeout 配置
经理不让修改mysql配置. 据说最大也就修改为27天, 也是不大完美的方案.
2. jdbc url 添加authoReconnect=true.
无效 . 据说是mysql 5.0之前才支持
3. 设置maxIdleTime小于wait_timeout
使用Fabric, 其中设置maxIdle, 结果无效
4. 启动线程定时查询
每隔一段时间查询一次数据库, 这样做只会, 发现只有一个连接仍然可用,
连接池中的其他链接仍然不可用. 所以我猜想, 如果想通过这种方式完成,
就要遍历连接池中的所有连接, 不知如何实现.
综上, 应该如何解决这个问题?

  • 写回答

4条回答 默认 最新

  • cluo_dev 2015-04-10 01:40
    关注

    建议去查一下validationQuery和testOnBorrow两个配置属性,应该能解决你的问题。

    validationQuery SQL查询,用来验证从连接池取出的连接,在将连接返回给调用者之前.如果指定,
    则查询必须是一个SQL SELECT并且必须返回至少一行记录
    testOnBorrow true 指明是否在从池中取出连接前进行检验,如果检验失败,
    则从池中去除连接并尝试取出另一个.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥15 luckysheet
  • ¥15 ZABBIX6.0L连接数据库报错,如何解决?(操作系统-centos)
  • ¥15 找一位技术过硬的游戏pj程序员
  • ¥15 matlab生成电测深三层曲线模型代码
  • ¥50 随机森林与房贷信用风险模型
  • ¥50 buildozer打包kivy app失败
  • ¥30 在vs2022里运行python代码
  • ¥15 不同尺寸货物如何寻找合适的包装箱型谱
  • ¥15 求解 yolo算法问题
  • ¥15 虚拟机打包apk出现错误