sql >> データベース >  >> RDS >> Mysql

RDSのデフォルトのタイムゾーン設定に合わせて調整する

    残念ながら、RDS DBパラメータグループでdefault_timezoneを設定することはできないため、あなたの試みはすでに正しい方向でした。

    $ rds-describe-db-parameters default | grep "time_zone"
    DBPARAMETER  default_time_zone                                                                   engine-default  string   static   false
    

    SET GLOBALを使用してグローバル値を設定するには、RDSユーザーとして付与されていないSUPER特権が必要です。

    time_zoneを設定する唯一の方法は、接続ごとに行うことです

    mysql> SET time_zone = timezone;
    

    私のマシンでは、US / Easternを正常に試しましたが、かなり古い世代を実行しています。

    利用可能なタイムゾーンを確認するには、ボックスにログインします

    mysql -h yourboxhost.rds.amazonaws.com -u <youruser> -p
    

    と入力

    mysql> SELECT * FROM mysql.time_zone_name;
    

    インスタンスに設定できるインストール済みの有効なタイムゾーン名のリストを取得する必要があります

    +----------------------------------------+--------------+
    | Name                                   | Time_zone_id |
    +----------------------------------------+--------------+
    | Africa/Abidjan                         |            1 |
    | Africa/Accra                           |            2 |
    | Africa/Addis_Ababa                     |            3 |
    | Africa/Algiers                         |            4 |
    | Africa/Asmara                          |            5 |
    | Africa/Asmera                          |            6 |
    | Africa/Bamako                          |            7 |
    | Africa/Bangui                          |            8 |
    | Africa/Banjul                          |            9 |
    | Africa/Bissau                          |           10 |
    | Africa/Blantyre                        |           11 |
    | Africa/Brazzaville                     |           12 |
    | Africa/Bujumbura                       |           13 |
    | Africa/Cairo                           |           14 |
    etc...
    

    データベースサーバーに接続するたびにtime_zoneを設定する必要があります

    たとえば、php Mysqli拡張機能を使用する場合、これを行うことができます

    $mysqli = mysqli_init();
    mysqli_options($mysqli,MYSQLI_INIT_COMMAND,"SET time_zone = 'Africa/Brazzaville'" );
    mysqli_real_connect($mysqli,$host, $user, $pass,$dbName) or die ('Unable to connect');
    

    それ以外の場合は、手動で(データベースコネクタに実行させるという観点から)SET time_zone = '<YOUR_DESIRED_TIMEZONE>'を実行します。 データベースに接続した直後にクエリを実行する



    1. PythonでMySQLストアドプロシージャを呼び出す方法

    2. ソケットエラーから読み取るデータはもうありません

    3. CodeIgniter内で複数のデータベースを使用する

    4. クリスマスプレゼントの配達:サンタのデータモデル