首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法识别服务器时区值“CEST”

无法识别服务器时区值“CEST”
EN

Stack Overflow用户
提问于 2018-03-27 17:06:53
回答 4查看 46.3K关注 0票数 33

我使用hibernate (Hibernate Maven 5.2.15.Final,mysql -连接器Maven 8.0.9-rc),在linux上的lampp环境中使用mysql 5.7。

我在意大利(中欧夏季时间),一次3月25日,在连接db上发生跟随错误:

服务器时区值“CEST”无法识别或表示多个时区。如果要利用时区支持,必须配置服务器或JDBC驱动程序(通过serverTimezone配置属性)以使用更特定的时区值。

在mysql控制台上,我运行了:

代码语言:javascript
复制
SHOW GLOBAL VARIABLES LIKE 'time_zone';
SET GLOBAL time_zone='Europe/Rome'; 

但这种情况并没有持续下去。

然后我添加到my.cnf文件中(in /etc/mysql):

代码语言:javascript
复制
[mysqld] 
default-time-zone = 'Europe/Rome' 

还包括:

代码语言:javascript
复制
default_time_zone = 'Europe/Rome' 

但数据库服务器还没有启动..。

为什么会发生错误?有人能帮我吗?

谢谢!

EN

回答 4

Stack Overflow用户

发布于 2018-07-24 08:41:16

@aiman的答案是不正确的,因为在您的示例中,有效的服务器时区是,而不是 UTC。

您将在网络上找到一些解决方案,包括jdbc连接字符串上的其他参数,但在某些情况下,您不能更改此字符串。

我就是这样修好的:

首先在mysql中导入系统时区:

代码语言:javascript
复制
$ mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root -p mysql

然后将/etc/mysql/my.cnf/etc/mysql/my.cnf部分(或最近的Debian/Ubuntu发行版上的/etc/mysql/mysql.conf.d/mysqld.cnf部分)中的默认mysql服务器时区设置为实际的服务器时区,例如:

代码语言:javascript
复制
default_time_zone = Europe/Paris

别忘了重新启动mysql

代码语言:javascript
复制
$ sudo service mysql restart

(或根据发行版的不同选择适当的命令)。

票数 33
EN

Stack Overflow用户

发布于 2020-09-21 07:34:21

如果问题是在连接到db时,我在this answer的注释中找到了解决方案。

在您的连接中,url使用以下内容:

代码语言:javascript
复制
String url = "jdbc:mysql://localhost/mydb?serverTimezone=Europe/Rome";

这样我就可以连接到欧洲/阿姆斯特丹的天桥和时区了。

票数 17
EN

Stack Overflow用户

发布于 2018-05-06 15:40:05

首先请参阅mysql服务器时区:

mysql -e "SELECT @@global.time_zone;" -u <mysqluser> -p

很可能应该是SYSTEM

找到您的系统时区:date +”%Z

看看它的CEST。

您需要更改系统时区:

代码语言:javascript
复制
#cd /usr/share/zoneinfo
#ls -l
#rm /etc/localtime
#ln -s /usr/share/zoneinfo/UTC /etc/localtime

然后重新启动mysql服务器:/etc/init.d/mysqld restart

尽情享受

票数 14
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49518683

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档