当前位置:   article > 正文

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

application.properties配置本地mysql数据源
  1. <!-- MyBatis+Mysql 5添加依赖-->
  2. <dependency>
  3. <groupId>org.mybatis.spring.boot</groupId>
  4. <artifactId>mybatis-spring-boot-starter</artifactId>
  5. <version>1.1.1</version>
  6. </dependency>
  7. <dependency>
  8. <groupId>mysql</groupId>
  9. <artifactId>mysql-connector-java</artifactId>
  10. <version>5.1.41</version>
  11. </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

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

MySQL Connector/J 8.x

  1. spring.datasource.url=jdbc:mysql://localhost:3306/your_database?useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=UTC
  2. spring.datasource.username=root
  3. spring.datasource.password=your_password
  4. 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等参数来实现,以指向包含受信任证书的密钥库。
本文内容由网友自发贡献,转载请注明出处:https://www.wpsshop.cn/w/代码探险家/article/detail/884542
推荐阅读
相关标签
  

闽ICP备14008679号