SpringBoot集成达梦,启动失败,异常码 6001

记录一次SpringBoot集成达梦启动失败奇怪的问题

 init datasource error, url: jdbc:dm://${ip}:${port}/${scheme}?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=Asia/Shanghai

dm.jdbc.driver.DMException: 网络通信异常

2025-01-23 09:26:05.893 ERROR 11916 --- [eate-2071449745] com.alibaba.druid.pool.DruidDataSource   : create connection SQLException, url: jdbc:dm://${ip}:${port}/${scheme}?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=Asia/Shanghai, errorCode 6001, state 08S01

dm.jdbc.driver.DMException: 网络通信异常

Caused by: java.net.SocketTimeoutException: Read timed out
    at java.net.SocketInputStream.socketRead0(Native Method) ~[na:1.8.0_271]

当看见这个问题的时候,我以为是达梦数据库服务器有问题。

排查步骤:

1. 使用SQLark直连数据库,查看是否可以连接,如果不能,那就上服务器上用disql命令连接,如果还是不行,那就是数据库启动有问题,我这里是能连接的

2. 这个时候我就怀疑是是不是驱动有问题,检查了一下达梦部署的版本(version:8),以及jdk(version:1.8)和连接驱动(version:8.1.3.140)是没问题的

3. 剩下的地方就是配置项了,看配置基本没问题的

spring:
  datasource:
    url: jdbc:dm://${ip}:${port}/${scheme}?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=Asia/Shanghai
    username: ${username}
    password: ${password}
    driver-class-name: dm.jdbc.driver.DmDriver
    druid:
      test-while-idle: true
      validation-query: SELECT 1 FROM DUAL
      time-between-eviction-runs-millis: 60000
      min-evictable-idle-time-millis: 300000
      max-active: 20
      initial-size: 5
      max-wait: 60000

4. 我先把url后面带的参数取消,启动时候就提示账号密码错误,是因为在复制粘贴的时候多了个空格

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值