阿里druid数据源配置及数据库密码加密

前言

1、阿里默认只对用户密码解密 2、druid 1.0.16版本及以上的解密时需要同时配置publicKey

用户密码加密

CMD运行命令

java -cp druid-1.0.9.jar com.alibaba.druid.filter.config.ConfigTools you_password

druid 1.0.16之前

druid 1.0.16及以后

DataSource配置

druid 1.0.16之前

spring:
  datasource:
    user:
      #DB mysql configuration:
      driverClassName: com.mysql.jdbc.Driver
      type: com.alibaba.druid.pool.DruidDataSource
      url: jdbc:mysql://192.168.1.115:3306/bj_dsm?useUnicode=true&characterEncoding=UTF-8&useSSL=false&allowMultiQueries=true&serverTimezone=Asia/Shanghai&autoReconnect=true
      username: root
      password: bNVOqb7WKLX5Bjnw+LMv92taj25KOxDimXxILPQjw42wgv+1lHzOH8kr97xDwWdhpY67QuYCS7sWN4W46YbkFA==
      # 下面为连接池的补充设置,应用到上面所有数据源中
      initialSize: 5
      minIdle: 5
      maxActive: 5
      # 配置获取连接等待超时的时间
      maxWait: 60000
      # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
      timeBetweenEvictionRunsMillis: 60000
      # 配置一个连接在池中最小生存的时间,单位是毫秒
      minEvictableIdleTimeMillis: 300000
      validationQuery: SELECT 1 FROM DUAL
      testWhileIdle: true
      testOnBorrow: false
      testOnReturn: false
      # druid数据源监控web
      filters: config,wall,log4j,stat
      maxPoolPreparedStatementPerConnectionSize: 20
      useGlobalDataSourceStat: true
      connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=500;config.decrypt=true

druid 1.0.16及以后

多配置了publickey的值,并在【connectionProperties】属性里指定了publickey。

spring:
  datasource:
    user:
      #DB mysql configuration:
      driverClassName: com.mysql.jdbc.Driver
      type: com.alibaba.druid.pool.DruidDataSource
      url: jdbc:mysql://192.168.1.115:3306/bj_dsm?useUnicode=true&characterEncoding=UTF-8&useSSL=false&allowMultiQueries=true&serverTimezone=Asia/Shanghai&autoReconnect=true
      username: root
      password: m7lcBNYdeUoO53a0KeZc+rVCCp70aq8PE6cA99RrdfiNyHkBBCJftUCy9ee8upX4+K8DVPG9vTwSSPieTiPCag==
      publickey: MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAMLqEuXKxdvT/d9AvRFzMxX5H2XAi+JwSQvyOf29+hTSjLAlojEdGMYAFBKkQx4vvhhYJDLF7blCga+TZq/5CvUCAwEAAQ==
      # 下面为连接池的补充设置,应用到上面所有数据源中
      initialSize: 5
      minIdle: 5
      maxActive: 5
      # 配置获取连接等待超时的时间
      maxWait: 60000
      # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
      timeBetweenEvictionRunsMillis: 60000
      # 配置一个连接在池中最小生存的时间,单位是毫秒
      minEvictableIdleTimeMillis: 300000
      validationQuery: SELECT 1 FROM DUAL
      testWhileIdle: true
      testOnBorrow: false
      testOnReturn: false
      # druid数据源监控web
      filters: config,wall,log4j,stat
      maxPoolPreparedStatementPerConnectionSize: 20
      useGlobalDataSourceStat: true
      connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=500;config.decrypt=true;config.decrypt.key=${spring.datasource.user.publickey}
经验分享 程序员 微信小程序 职场和发展