java.sql.SQLException:无法识别服务器时区值“ ora legale Europa occidentale”

时间:2019-04-18 13:40:29

标签: java mysql spring spring-boot spring-data-jpa

我在Spring中与数据库的连接有问题。 我的数据库名称已注明b。 我将xampp和phpmyadmin用于数据库

This is my application.properties

这是错误

java.sql.SQLException: The server time zone value 'ora legale Europa occidentale' 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.
    at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129) ~[mysql-connector-java-8.0.15.jar:8.0.15]
    at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97) ~[mysql-connector-java-8.0.15.jar:8.0.15]
    at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:89) ~[mysql-connector-java-8.0.15.jar:8.0.15]
    at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:63) ~[mysql-connector-java-8.0.15.jar:8.0.15]
    at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:73) ~[mysql-connector-java-8.0.15.jar:8.0.15]
    at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:76) ~[mysql-connector-java-8.0.15.jar:8.0.15]
    at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:835) ~[mysql-connector-java-8.0.15.jar:8.0.15]
    at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:455) ~[mysql-connector-java-8.0.15.jar:8.0.15]
    at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:240) ~[mysql-connector-java-8.0.15.jar:8.0.15]
    at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199) ~[mysql-connector-java-8.0.15.jar:8.0.15]`

2 个答案:

答案 0 :(得分:1)

您可以通过在属性的 URL 中添加时区来解决问题。 这将强制 SQL 不在系统时区中搜索。

spring.datasource.url=jdbc:mysql://localhost:3306/{your_instance}?serverTimezone=UTC

答案 1 :(得分:0)

此问题特定于Windows及其意大利语翻译。

解决方法:

首先,我们需要加载MySQL Server Time Zone Support中指定的时区表 为此:

  • 从以下位置下载最新的posix zip文件:timezone_2019c_posix_sql:MySQL time table download
  • 直接在C:\中提取它,以获得简单路径
  • 启动MySQL命令行客户端
  • 从命令行客户端执行以下命令:
    mysql> use mysql;
    mysql> source c:\timezone_posix.sql;
  • 从Workbench执行以下查询:
    SET GLOBAL time_zone = 'Europe/Rome';

有关此问题的更多信息,请参阅:

https://github.com/TdP-2019/materiale/blob/master/faq/timezone.md(意大利语)