在一台服务器上,当我运行:

mysql> select now();
+---------------------+
| now()               |
+---------------------+
| 2009-05-30 16:54:29 |
+---------------------+
1 row in set (0.00 sec)

在另一台服务器上:

mysql> select now();
+---------------------+
| now()               |
+---------------------+
| 2009-05-30 20:01:43 |
+---------------------+
1 row in set (0.00 sec)

当前回答

如果您正在使用MySql Workbench,您可以通过打开管理员视图并选择Advanced选项卡来设置这一点。顶部部分是“Localization”,第一个复选框应该是“default-time-zone”。选中复选框,然后输入您想要的时区,重新启动服务器,您应该可以开始了。

其他回答

在我的例子中,解决方案是在高级设置中将serverTimezone参数设置为适当的值(CET表示我的时区)。

当我使用IntelliJ时,我使用它的数据库模块。当添加一个新的连接到数据库,并在“常规”选项卡中添加所有相关参数后,“测试连接”按钮上出现错误。同样,解决方案是在高级选项卡中设置serverTimezone参数。

您可以在启动服务器时指定服务器的默认时区,请参阅http://dev.mysql.com/doc/refman/5.1/en/server-options.html,特别是——default-time-zone=timezone选项。可以查看全局时区和会话时区

SELECT @@global.time_zone, @@session.time_zone;

使用set语句设置其中一个或两个,更多细节请参见http://dev.mysql.com/doc/refman/5.1/en/time-zone-support.html。

通过登录MYSQL服务器来设置MYSQL时区。为是

SET SESSION time_zone = '+5:30';

然后运行SELECT NOW();

这是一个10年前的问题,但不管怎样,这里有一个对我有用的方法。我使用MySQL 8.0与Hibernate 5和SpringBoot 4。

我试过上面的答案,但对我不起作用,对我有效的是:

db.url=jdbc:mysql://localhost:3306/testdb?useSSL=false&serverTimezone=Europe/Warsaw

如果这对你有帮助,别忘了给它投票

编辑MySQL配置文件

sudo nano /etc/mysql/my.cnf

滚动并将这些添加到底部。更改到相应的时区

[mysqld]
default-time-zone = "+00:00"

重新启动服务器

sudo service mysql restart