Spring Boot 操作数据库出现 "You must configure either the server or JDBC driver" 的解决方案。

Spring Boot 配置数据库是出现了以下的异常:

java.sql.SQLException: The server time zone value '�й���׼ʱ��' is unrecognized or represents more than one time zone. You must configure either the server or JDBC driver (via the serverTimezone configuration property) to use a more specifc time zone value if you want to utilize time zone support.

产生原因分析:

1)查看数据库的版本:查看pom文件

<dependency>
	<groupId>mysql</groupId>
	<artifactId>mysql-connector-java</artifactId>
	<scope>runtime</scope>
</dependency>

2)点击  <artifactId>mysql-connector-java</artifactId> 继续查看版本

<dependency>
   <groupId>mysql</groupId>
   <artifactId>mysql-connector-java</artifactId>
   <version>${mysql.version}</version>
   <exclusions>
     <exclusion>
        <artifactId>protobuf-java</artifactId>
        <groupId>com.google.protobuf</groupId>
     </exclusion>
  </exclusions>
</dependency>

3)点击 <version>${mysql.version}</version> 查看版本

<mysql.version>8.0.18</mysql.version>

问题产生原因:

这是由于mysql 6.0.2 版本以上会出现 数据库和系统时区差异

解决方案一:更改mysql版本

<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>5.1.48</version>
</dependency>

注意在添加这个版本的时候需要更改yml文件中的信息:

driver-class-name: com.mysql.jdbc.Driver

解决方式二:添加时区

下面在pom文件中使用默认的mysql驱动。

<dependency>
	<groupId>mysql</groupId>
	<artifactId>mysql-connector-java</artifactId>
	<scope>runtime</scope>
</dependency>

在application.yml 文件中添加

1)在 6.0.x 版本以上都需要添加。

扫描二维码关注公众号,回复: 9054876 查看本文章
driver-class-name: com.mysql.cj.jdbc.Driver

2)在自己所要查询的数据中添加:

url: jdbc:mysql://localhost:3306/springdb?serverTimezone=UTC

  注意:但是添加这个之后,会出现添加数据时依然存在时区问题,所以需要更改成为以下代码

url: jdbc:mysql://localhost:3306/springdb?serverTimezone=Asia/Shanghai
发布了17 篇原创文章 · 获赞 0 · 访问量 1954

猜你喜欢

转载自blog.csdn.net/FOGUANGPUZHAOFOFA/article/details/102857649
今日推荐