2011年5月26日木曜日

AWS RDS のタイムゾーンについて個人的まとめ

 RDSのタイムゾーンで色々試して、色々つまづいたのでまとめておく。

まず、2011/5/17現在、

RDSではtime_zoneの設定は出来ない。

USTの時刻がデフォルトとなっており、time_zoneは編集不可項目となっている。
参照:https://forums.aws.amazon.com/thread.jspa?threadID=38273 のNick@AWSさんの回答より。

代替案として次を試してみた。

  1. mysqlのコマンドから直接指定する。
  2. init_connectに、set time_zone = 'Asia/Tokyo'; を設定する。
ひとつずつ見ていくと、、、


  1. mysqlのコマンドから直接指定する。

まず、mysqlから GLOBAL time_zone を指定しようとすると、権限で怒られる。

mysql>  SET GLOBAL time_zone = '+9:00';
ERROR 1227 (42000): Access denied; you need the SUPER privilege for this operation

ただし、GLOBALじゃない、セッション毎の設定であればOK。

mysql> set time_zone = '+9:00';
Query OK, 0 rows affected (0.00 sec)

でも、これを毎回叩くのはどうだろう。プログラム側で対応しないといけないし、、、
う〜む。

こちらを参考にさせて頂きました。ありがとうございます。


ということで次。


     2. init_connectに、set time_zone = 'Asia/Tokyo'; を設定する。

これは、、、うまくいかなかった。
こちら↓を参照させて頂いてPHPスクリプトで、parameter group に設定しました。          

が、DBにつながらなくなってしまいました。。
厳密にはDBにはつながるのですが、SQLとか全て受け付けない、、、

mysql> show databases;
ERROR 2006 (HY000): MySQL server has gone away
No connection. Trying to reconnect...
Connection id:    19
Current database: *** NONE ***
ERROR 2013 (HY000): Lost connection to MySQL server during query

これでうまくいく環境もあるようですが、自分のところではダメでした。。
下記で同じ症状になっている方がいるようです。どうもリブートするとダメとか。

で、結論としては、タイムゾーンの設定はとりあえずプログラム側で、という切ない感じで。。

今後解決されることを切に願うばかりです、、、
誰かうまいやり方をされている方がいらっしゃいましたら、教えていただけると嬉しいですm(__)m

こちらに、プログラムでの対応案が書かれています。

0 件のコメント:

コメントを投稿