SpringBoot中application.yml--不同版本的Mysql,不同的url

我们在配置application.yml时连接地址url信息不正确(不完整)会连接不上数据库,下面将简单讲讲为什么不同版本的MySQL,url也不同:

1. MySQL 驱动类的变化

  • MySQL 5.x:通常使用 com.mysql.jdbc.Driver 作为驱动类。

  • MySQL 8.x:引入了新的驱动类 com.mysql.cj.jdbc.Driver。这是 MySQL 8.x 的官方推荐驱动类,它提供了更好的性能和对新特性的支持。

2. JDBC URL 参数的变化

  • MySQL 5.x:JDBC URL 通常为 jdbc:mysql://host:port/database?characterEncoding=utf-8

  • MySQL 8.x:JDBC URL 需要添加更多参数,如 useSSL=falseserverTimezone=UTC。这些参数的添加主要是为了解决 MySQL 8.x 中引入的一些新特性,例如默认启用 SSL 连接以及对时区的严格要求。

3. MySQL 8.x 的新特性

  • SSL 连接:MySQL 8.x 默认启用 SSL 连接,如果不设置 useSSL=false,可能会导致连接失败。

  • 时区设置:MySQL 8.x 对时区的处理更加严格,需要明确指定时区,例如 serverTimezone=UTC

4. 驱动版本与数据库版本的兼容性

不同版本的 MySQL 驱动与数据库版本之间存在兼容性问题。例如,使用 MySQL 8.x 的驱动连接 MySQL 5.x 数据库可能会报错,反之亦然。所以要根据实际使用的 MySQL 数据库版本选择合适的驱动版本和配置哦~

MySQL 5.x
application.yml
spring:
  datasource:
    url: jdbc:mysql://localhost:3306/your_database_name?characterEncoding=utf-8
    username: root
    password: root
    driver-class-name: com.mysql.jdbc.Driver

 

MySQL 8.x
application.yml
spring:
  datasource:
    url: jdbc:mysql://localhost:3306/your_database_name?useSSL=false&serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8
    username: root
    password: root
    driver-class-name: com.mysql.cj.jdbc.Driver

你可能感兴趣的:(spring,boot,mysql,后端)