更改 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方式執行

操作流程如下

  1. 創建Stored Procedure
  2. 創建Parameter Group
  3. Parameter Grouup關聯到RDS
  4. 重啟RDS

1.創建Stored Procedure

以Master用戶登錄到RDS,shared Schema創建Stored Procedure(shared.store_time_zong)。

把時間配置為中國標准時間(Asia/Chongqing)。

確認Stored Procedure好不好用

確認到時間變為中國標准時間(比UTC快8小時)。

2.創建Parameter Group

RDS上是以Parameter Group的形式來管理,MySQL的參數,在這里不修改默認的Parameter Group,創建一個Parameter Group。

  1. 點擊:Parameter Groups
  2. 點擊:Create Parameter Group

aws

  1. Parameter Group Family:選擇mysql5.6(因為我們的RDS MySQL版本是5.6.22)
  2. Group Name:timezone-Chongqing
  3. Description:init_connect call store_time_zone

aws

  1. 選擇:timezone-chongqing
  2. 點擊:Edit Parameters

aws

  1. init_connect:CALL shared.store_time_zone

aws

  1. 點擊:Save Changes

aws

  1. 選擇:RDS實例(awspack)
  2. 點擊:Instance Actions
  3. 點擊:Modify

aws

  1. DB Parameter Group:timezone-chongqing
  2. 點擊:Continue

aws

  1. 確認:DB Parameter Group為timezone-chongqing
  2. 點擊:Modify DB Instance

aws

當用戶連接到RDS時,通過init_connect調用Stored Procedure。

3. 重啟RDS

重啟RDS實例之前確認一下,Parameter Group的狀態在applying

  1. 點擊:RDS Dashboard的Instances
  2. 選擇:RDS實例awspack
  3. 點擊:Instance Actions
  4. 點擊:Reboot

aws

重啟RDS實例之后確認,Parameter Group的狀態為in-sync

aws

以aws_rds用戶登錄到MySQL以后查看,時間為中國時間。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM