我有一个 Amazon Aurora 数据库集群,我想更改时区。我该如何操作?
简短描述
在 Amazon Aurora 中, time_zone 参数是集群级参数。参数组为集群提供默认时区。这是所有数据库的默认设置。time_zone 的默认值为 UTC,在更改 time_zone 的值之后,您的更改将应用于该集群中的所有节点。
**注意:**default_time_zone 参数所指的是服务器时区。您不能修改此参数。
**重要提示:**数据库集群参数组和数据库实例参数组之间存在差别。
- 数据库参数组充当应用于一个或多个数据库实例的引擎配置值的容器。数据库参数组适用于 Amazon Relational Database Service (Amazon RDS) 和 Amazon Aurora 中的数据库实例。这些配置设置适用于 Aurora 数据库集群中的数据库实例之间可能会有不同的属性,例如内存缓冲区的大小。
- 数据库集群参数组充当应用于 Aurora 数据库集群中的每个数据库实例的引擎配置值的容器。例如,Aurora 共享存储模型要求 Aurora 集群中的每个数据库实例对参数(如 innodb_file_per_table)使用相同的设置。 因此,影响物理存储布局的参数属于数据库集群参数组。数据库集群参数组还包含所有数据库实例级参数的默认值。
解决方法
此示例使用 Amazon Aurora MySQL 5.7 将 time_zone 参数更改为 ASIA/CALCUTTA。
1. 创建自定义数据库集群参数组。有关更多信息,请参阅使用参数组。
2. 修改动态参数 time_zone="ASIA/CALCUTTA"。
3. 将您创建的新数据库集群参数组附加到集群,然后手动重新启动数据库集群以应用更改。
4. 通过运行 select @@time_zone 命令检查数据库实例的时间戳:
mysql> select @@time_zone;
+---------------+
| @@time_zone |
+---------------+
| Asia/Calcutta |
+---------------+
1 row in set (0.00 sec)
**注意:**在会话级别设置时区时,这将会覆盖数据库和参数时区。但是,仅对该会话保留此设置。当您运行 SET time_zone = 'Europe/Helsinki'; 命令时,这会将所有数据库的时区设置为 Europe/Helsinki(欧洲/赫尔辛基)。新时区优先于参数组时区。在数据库级别设置的时区将覆盖参数组时区。会话时区将覆盖参数组时区和在数据库级别设置的时区。