猿小白888 2023-09-18 13:51 采纳率: 25%
浏览 9

若依druid配置多数据源

若依druid配置多数据源,主库MySQL,丛库pgsql,调用pgsql报错

PSQLException: Properties for the driver contains a non-string value for the key loginTimeout
  • 写回答

1条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-09-18 16:24
    关注

    【相关推荐】



    • 关于该问题,我找了一篇非常好的博客,你可以看看是否有帮助,链接:Druid连接Mysql数据库
    • 除此之外, 这篇博客: druid与mysql连接超时的问题中的 背景 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:

      公司一个项目使用了druid连接池,mysql数据库,生产环境日志偶尔会打印一个错误如下:

      com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure。

      查了下,错误挺常见,出现这个错误的原因:

      1.网络错误,导致数据库无法连接。

      2.数据库连接闲置时间太长,导致数据库关闭了连接,而连接池还持有这个连接的引用,所以导致使用这个连接的时候出现了异常。

      针对第二个问题,具体分析一下。

      在我们的程序中,对数据库发起创建连接的请求,连接由数据库创建,而我们持有的是连接的引用;当使用连接池时,连接池会初始化一批连接,但是当我们的程序空闲时间太长时,数据库会主动根据设置的超时时间(mysql默认连接超时时间为8小时)断开连接,但是这个操作连接池并不知道,所以这个时候就需要连接池有一个心跳机制去检测连接池中的连接是否有效,在druid中,可以通过设置testWhileIdle=true(默认为true)来开启。

      ps:使用druid的时候推荐使用1.1.5版本及以上,因为1.1.5版本修复了一个重大的bug:testWhileIdle在某些情况下会失效。

      在mysql中查看超时时间的命令为:    show global variables like '%timeout%'
      修改mysql超时时间语句为:   set global wait_timeout=10000


    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    评论

报告相同问题?

问题事件

  • 创建了问题 9月18日

悬赏问题

  • ¥66 关于川崎机器人调速问题
  • ¥15 winFrom界面无法打开
  • ¥15 crossover21 ARM64版本安装软件问题
  • ¥15 mymetaobjecthandler没有进入
  • ¥15 mmo能不能做客户端怪物
  • ¥15 osm下载到arcgis出错
  • ¥15 Dell g15 每次打开eiq portal后3分钟内自动退出
  • ¥200 使用python编写程序,采用socket方式获取网页实时刷新的数据,能定时print()出来就行。
  • ¥15 matlab如何根据图片中的公式绘制e和v的曲线图
  • ¥15 我想用Python(Django)+Vue搭建一个用户登录界面,但是在运行npm run serve时报错了如何解决?