めあとるーむ日記帳

なんか書く

Cloud SQL のタイムゾーンを変える

SQLの current_time とか now() はサーバ側のタイムゾーン設定に依存してるのでCloud SQLなどではタイムゾーンが日本と違ったりすることがある。

Cloud SQLも例にもれずデフォルトだとこういう設定になっている

mysql> show variables like '%time_zone%';
+------------------+--------+
| Variable_name    | Value  |
+------------------+--------+
| system_time_zone | UTC    |
| time_zone        | SYSTEM |
+------------------+--------+
2 rows in set (0.34 sec)

UTC世界標準時なので日本時間から9時間遅れである。

中身はMySQLだが設定ファイルを直接いじったりは出来ないのでCloud SQLの管理画面からフラグを操作すればいい。

詳しくはここ。これが公式ドキュメント。

Configuring Cloud SQL Flags  |  Cloud SQL for MySQL  |  Google Cloud Platform

タイムゾーンdefault_time_zoneを +09:00 にしてあげればJSTになる。

ちなみに変更するとこんな感じになる。

mysql> show variables like '%time_zone%';
+------------------+--------+
| Variable_name    | Value  |
+------------------+--------+
| system_time_zone | UTC    |
| time_zone        | +09:00 |
+------------------+--------+
2 rows in set (0.15 sec)

ほかにも設定関係はここで変更してあげればいいっぽい