【问题标题】:How can i change timezone in the Managed MYSQL Database in DigitalOcean?如何在 DigitalOcean 的托管 MYSQL 数据库中更改时区?
【发布时间】:2021-01-17 22:11:03
【问题描述】:

我从 DigitalOCean 带来了新的托管 MYSQL 数据库。现在我无法更改全球时区。当我尝试更改它时,发生错误并且它说没有权限。

*我正在使用 Spring Boot 项目。

有没有办法解决这个问题?

【问题讨论】:

  • 时区是MySQL服务器的设置,不是数据库/表/列的属性。如果没有相应的权限,您将无法影响它......如果您不是服务器所有者,没有人会给您这样的权限 - 因为此设置会影响所有服务器的数据库。
  • 附言。存储在 TIMESTAMP 数据类型列中的所有数据都存储在 GMT 时区中,并在检索期间转换为服务器的时区。在检索期间将CONVERT_TZ() function 应用于查询中的数据。
  • 嗨Akina,我试过了,但是数字海洋sql server 甚至主用户都不给root权限。

标签: mysql spring-boot digital-ocean mysql-8.0


【解决方案1】:

仍然无法从 SQL 或 digitalocean 的仪表板中更改它。 创建连接时有一种方法。主用户也没有更改全局变量的 root 权限。所以我们只有一个选择。只有我们可以玩会话。 创建连接时,您无法设置 SESSION 时区。

如果你使用的是 Spring boot 和 Hikari (pool),我会放配置。 为此,我们可以使用connection-init-sql

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

现在您的会话时区将如您所愿。

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-03-06
    • 1970-01-01
    • 2019-05-13
    • 1970-01-01
    • 2020-10-06
    • 2011-11-28
    • 2020-07-05
    相关资源
    最近更新 更多