带有休眠和 MySQL 的时区问题
我正在尝试用tomcat(8.5)和mysql(v.8.0.12)配置hibernate(5.3.3 Final)。当我启动我的HibernateTest.java(教程中非常简单的代码,这里没有问题)将hibernate.connection.url设置为' jdbc:mysql://localhost:3306/sakila',我遇到了以下错误:
Caused by: java.sql.SQLException: The server time zone value 'Paris, Madrid
(heure d?été)' 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.
MySQL目前设置在全局和会话的“系统”时区(mysql>选择@@global.time_zone,@@session.time_zone)。我的系统时区确实是巴黎/马德里。在我的休眠.cfg.xml文件中,当我写入连接网址时:
jdbc:mysql://localhost:3306/sakila?useJDBCCompliantTimezoneShift=true;useLegacyDatetimeCode=false;serverTimezone=UTC;
错误是:
com.mysql.cj.exceptions.WrongArgumentException: Malformed database URL, failed to parse the connection string near '=false;serverTimezone=UTC;'.
这不是stackoverflow帖子中提到的问题“mysql服务器时区和jdbc连接的问题”,因为“&”被eclipse拒绝,请参阅休眠.cfg.xml文件附加的屏幕截图:
[对实体“useLegacyDatetimeCode”的引用必须以分隔符';'结尾]1 个
它不是“mysql:”和“//localhost”之间的不可见字符,正如堆栈溢出帖子“格式错误的数据库URL,无法解析主URL部分”中提到的那样。我试图通过MySql Workbench设置本地时间(默认时区= '+02:00')的选项来解决这个问题,这与马德里/巴黎的夏令时(我在这里的情况)相吻合。它不会改变任何事情。有什么想法吗?我是否必须在其他地方对其进行配置?感谢您的帮助,我已经在这个上面3天了,没有成功。