Spring Boot应用的配置文件(application.properties或application.yml)指定应用连接MySQL数据库

<!-- MyBatis+Mysql 5添加依赖-->
   <dependency>
      <groupId>org.mybatis.spring.boot</groupId>
      <artifactId>mybatis-spring-boot-starter</artifactId>
      <version>1.1.1</version>
    </dependency>

    <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>5.1.41</version>
    </dependency>

com.mysql.cj.jdbc.Driver是MySQL Connector/J 8.x及以上版本中的JDBC驱动类名。

在早期的版本中,如MySQL Connector/J 5.x,驱动类名通常是com.mysql.jdbc.Driver

MySQL Connector/J 5.x

spring.datasource.url=jdbc:mysql://localhost:3306/your_database?useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=UTC  
spring.datasource.username=root  
spring.datasource.password=your_password  
spring.datasource.driver-class-name=com.mysql.jdbc.Driver

MySQL Connector/J 8.x

spring.datasource.url=jdbc:mysql://localhost:3306/your_database?useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=UTC  
spring.datasource.username=root  
spring.datasource.password=your_password  
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

spring.datasource.url属性指定了数据库的URL,包括主机名、端口号、数据库名以及一些可选的连接参数。spring.datasource.usernamespring.datasource.password分别指定了连接数据库所需的用户名和密码。最后,spring.datasource.driver-class-name属性指定了JDBC驱动类名。

serverTimezone=UTC参数用于指定服务器的时区,这有助于解决因时区差异而导致的日期时间问题。

在MySQL JDBC连接字符串中,useSSL=false 和 allowPublicKeyRetrieval=true 是两个重要的连接参数,尤其是在使用较新版本的MySQL数据库(如MySQL 8.0及以上)和MySQL Connector/J JDBC驱动时。这两个参数的作用和设置原因如下:

useSSL=false

  • 作用:这个参数用于指示JDBC驱动在建立数据库连接时是否应该使用SSL加密。设置为false意味着不使用SSL加密来建立连接。
  • 设置原因:在某些开发或测试环境中,可能不需要或不想使用SSL加密来连接数据库,因为SSL加密会增加连接的开销和复杂性。然而,在生产环境中,通常建议使用SSL加密来保护数据库连接的安全性。
  • 注意:如果数据库服务器配置为要求SSL连接(例如,require_secure_transport=ON),则即使将useSSL设置为false,连接也可能无法成功建立。在这种情况下,应该配置数据库服务器以允许非SSL连接,或者在客户端使用SSL连接。

allowPublicKeyRetrieval=true

  • 作用:这个参数与MySQL 8.0及以上版本中的缓存的公钥和SHA-256密码加密功能相关。当设置为true时,它允许客户端在连接时从服务器检索公钥,并使用这个公钥来验证服务器的身份。
  • 设置原因:在MySQL 8.0之前,默认的密码加密机制是基于SHA-1的,但从MySQL 8.0开始,默认使用更强的SHA-256密码加密机制。这种机制要求客户端在建立连接时能够验证服务器的公钥。如果allowPublicKeyRetrieval被设置为false(这是MySQL 8.0及更高版本JDBC驱动的默认值),并且客户端没有预配置的公钥来验证服务器,那么连接将失败。
  • 注意:尽管将allowPublicKeyRetrieval设置为true可以允许连接成功,但在生产环境中,更好的做法是使用预配置的公钥或证书链来验证服务器的身份,而不是依赖动态检索的公钥。这可以通过设置trustCertificateKeyStoreUrltrustCertificateKeyStorePassword等参数来实现,以指向包含受信任证书的密钥库。
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

向画

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值