记录一次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后面带的参数取消,启动时候就提示账号密码错误,是因为在复制粘贴的时候多了个空格
4446

被折叠的 条评论
为什么被折叠?



