如何在DigitalOcean的Managed MYSQL数据库中更改时区?

3

我从DigitalOcean购买了新的托管MYSQL数据库。现在我无法更改全局时区。当我尝试更改时,会出现错误并提示没有权限。

* 我正在使用Spring Boot项目。

有解决方法吗?


时区是MySQL服务器的设置,而不是数据库/表/列的属性。如果没有相应的特权,您无法影响它...如果您不是服务器所有者,没有人会给您这样的特权 - 因为此设置会影响所有服务器的数据库。 - Akina
1
PS. 所有存储在 TIMESTAMP 数据类型列中的数据都存储在 GMT 时区,并在检索期间转换为服务器时区。在检索期间,对数据应用 CONVERT_TZ() 函数 - Akina
嗨Akina,我尝试了一下,但是数字海洋SQL服务器甚至不给主用户root权限。 - user14099235
1个回答

3

但从SQL或DigitalOcean的仪表板上更改它的方式是不可能的。

在创建连接时有一种方法。主用户也没有root权限来更改全局变量,所以我们只有一个选择。唯一能做的就是操作会话(session)。

创建连接时,您可以设置SESSION时区。

如果您正在使用Spring Boot和Hikari(池),我将提供配置。要做到这一点,我们可以使用connection-init-sql

spring.datasource.hikari.connection-init-sql=SET SESSION time_zone='Asia/Colombo'

现在您的会话时区将按照您的要求设置。

或者您可以通过连接URL传递时区[serverTimezone],如下所示:

jdbc:mysql://localhost:3006?serverTimezone=Asia/Colombo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接