开发者社区> 问答> 正文

druid-spring-boot 升级到1.1.1版本 数据库加密连接时 无法连接数据库

以下时配置信息:

T60.png

T61.png

下面时错误信息:

T62.png

注:1.1.0版本正常

原提问者GitHub用户cuipengcx

展开
收起
山海行 2023-07-05 20:48:56 153 0
3 条回答
写回答
取消 提交回答
  • 如果您在将Druid Spring Boot升级到1.1.1版本后使用数据库加密连接时无法连接数据库,可能是因为1.1.1版本默认的加密方式已更改。为了解决这个问题,您需要相应地修改数据库连接的配置。

    在Druid Spring Boot 1.1.1版本中,默认使用的是RSA加密方式而不是之前的DES加密方式。因此,您需要按照以下配置来启用加密连接:

    spring.datasource.url=jdbc:mysql://localhost/testdb?useSSL=true&requireSSL=true&useUnicode=true&characterEncoding=UTF-8&useOldAliasMetadataBehavior=true&autoReconnect=true&serverTimezone=Asia/Shanghai
    spring.datasource.username=testuser
    spring.datasource.password=ENC_RSA(加密后的密码)
    spring.datasource.driverClassName=com.mysql.jdbc.Driver
    

    在上述配置中,我们使用ENC_RSA()函数对密码进行加密,并将加密后的密码存储在application.properties(或application.yml)文件中。然后,我们通过设置config.decrypt=true属性来启用密码解密功能:

    spring.datasource.connectionProperties=config.decrypt=true
    

    请注意,新版Druid已经发布,可以修复与连接属性相关的问题。建议升级到最新版本(如1.1.4),以获得更好的兼容性和修复已知问题。

    2023-07-30 15:09:18
    赞同 展开评论 打赏
  • 北京阿里云ACE会长

    如果您在将Druid Spring Boot升级到1.1.1版本后使用数据库加密连接时无法连接数据库,可能是因为1.1.1版本中的默认加密方式已经改变,您需要相应地修改您的数据库连接配置。

    在Druid Spring Boot 1.1.0版本及以下版本中,Druid默认使用的是DES加密方式,您可以使用以下配置启用加密连接:

    ini
    Copy
    spring.datasource.url=jdbc:mysql://localhost/testdb?useSSL=true&requireSSL=true&useUnicode=true&characterEncoding=UTF-8&useOldAliasMetadataBehavior=true&autoReconnect=true&serverTimezone=Asia/Shanghai
    spring.datasource.username=testuser
    spring.datasource.password=ENC(加密后的密码)
    spring.datasource.driverClassName=com.mysql.jdbc.Driver
    spring.datasource.connectionProperties=config.decrypt=true

    然而,在Druid Spring Boot 1.1.1版本中,Druid默认使用的是RSA加密方式,您需要使用以下配置来启用加密连接:

    ini
    Copy
    spring.datasource.url=jdbc:mysql://localhost/testdb?useSSL=true&requireSSL=true&useUnicode=true&characterEncoding=UTF-8&useOldAliasMetadataBehavior=true&autoReconnect=true&serverTimezone=Asia/Shanghai
    spring.datasource.username=testuser
    spring.datasource.password=ENC_RSA(加密后的密码)
    spring.datasource.driverClassName=com.mysql.jdbc.Driver
    spring.datasource.connectionProperties=config.decrypt=true
    在上面的示例中,我们使用了ENC_RSA()函数将密码加密,并将加密后的密码存储在application.properties或application.yml文件中。然后,我们在连接属性中使用了config.decrypt=true属性来启用密码解密功能。

    2023-07-30 13:25:59
    赞同 展开评论 打赏
  • 应该是V1.1.1不支持connectionPropreties的问题

    新版已发布,可解决这个问题 https://github.com/alibaba/druid/releases/tag/1.1.4

    原回答者GitHub用户lihengming

    2023-07-06 11:45:42
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Spring Cloud Alibaba - 重新定义 Java Cloud-Native 立即下载
The Reactive Cloud Native Arch 立即下载
量子加密通信技术 立即下载