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等参数来实现,以指向包含受信任证书的密钥库。

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-20 06:14:03       52 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-20 06:14:03       54 阅读
  3. 在Django里面运行非项目文件

    2024-07-20 06:14:03       45 阅读
  4. Python语言-面向对象

    2024-07-20 06:14:03       55 阅读

热门阅读

  1. SQL Server语法大全

    2024-07-20 06:14:03       14 阅读
  2. 题解|2024暑期杭电多校01

    2024-07-20 06:14:03       20 阅读
  3. 【C语言ffmpeg】打开第一个视频

    2024-07-20 06:14:03       15 阅读
  4. 阿里云服务器 篇五:短链服务网站

    2024-07-20 06:14:03       15 阅读
  5. Held-Karp算法的C++代码

    2024-07-20 06:14:03       15 阅读
  6. 写一个简单的兼容GET/POST请求的登录接口

    2024-07-20 06:14:03       16 阅读
  7. 单例模式详解

    2024-07-20 06:14:03       18 阅读
  8. 鸿蒙 LazyForEach 踩坑

    2024-07-20 06:14:03       14 阅读
  9. 时序数据库-02-聊一聊时序数据库

    2024-07-20 06:14:03       19 阅读
  10. macbook的程序坞在主副屏切换

    2024-07-20 06:14:03       16 阅读
  11. 光纤跳线百科

    2024-07-20 06:14:03       16 阅读
  12. 数据仓库中事实表设计的关键步骤解析

    2024-07-20 06:14:03       15 阅读
  13. kafka设置分区

    2024-07-20 06:14:03       15 阅读