aws mysql_更改 AWS RDS mysql时区

AWS RDS

AWS上搭建数据库的时候,不是DB on EC2就是RDS,但是选择RDS时,Timezone怎么处理?

「面向全球提供的AWS来讲理所当然的是UTC」,而RDS也不是例外。把服务器迁移到AWS时,「数据库能不能使用中国时间」是常见的一个问题。 DB on EC2的话,配置一下系统的Timezone就可以,但是RDS是我们无法直接登录的因此需要使用MySQL的功能来实现。

介绍如何修改RDS MySQL的Timezone。

在RDS的Master用户不同于MySQL root用户,因此没有SUPER权限(管理者权限)。因此不能使用SET GLOBAL命令修改Timezone。在这里使用MySQL的init_connect参数里使用SET SESSION命令来修改Timezone。Init_conect参数实在Parameter Group里进行修改。

注意事项

rdsadmin用户貌似是AWS用来管理RDS实例的用户,无法判断影响范围因此不修改rdsadmin的Timezone。

在init_connect参数里直接填写命令会无法正常运行,因此定义Stored Procedure,用CALL方式执行

操作流程如下

创建Stored Procedure

创建Parameter Group

Parameter Grouup关联到RDS

重启RDS

1.创建Stored Procedure

以Master用户登录到RDS,shared Schema创建Stored Procedure(shared.store_time_zong)。

把时间配置为中国标准时间(Asia/Chongqing)。

mysql> CREATE DATABASE shared;

Query OK, 1 row affected (0.00 sec)

mysql> DELIMITER |

mysql> CREATE PROCEDURE shared.`store_time_zone`()

-> IF (POSITION('aws_rds@' IN CURRENT_USER()) = 1) THEN

-> SET SESSION time_zone = 'Asia/Chongqing';

-> END IF |

Query OK, 0 rows affected (0.01 sec)

mysql> DELIMITER ;

1

2

3

4

5

6

7

8

9

10

11

mysql>CREATEDATABASEshared;

QueryOK,1rowaffected(0.00sec)

mysql>DELIMITER|

mysql>CREATEPROCEDUREshared.`store_time_zone`()

->IF(POSITION('aws_rds@'INCURRENT_USER())=1)T

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值