2024-06-13 mysqlのタイムゾーン設定
TZ
変数によってMySQLのタイムゾーンを設定できる。
MySQLのタイムゾーン - tmtms のメモ から引用する。
デフォルトのタイムゾーン UTC から JST に変更する場合:
# TZ=Japan /usr/sbin/mysqld
mysql> SHOW VARIABLES LIKE '%time_zone%'; +------------------+--------+ | Variable_name | Value | +------------------+--------+ | system_time_zone | JST | | time_zone | SYSTEM | +------------------+--------+ mysql> system date; SELECT NOW(); 2015年 8月 22日 土曜日 21:39:12 JST +---------------------+ | now() | +---------------------+ | 2015-08-22 21:39:12 | +---------------------+
タイムゾーン違いで何が困るのか
サーバー側とクライアント側で時刻のズレが生じてしまうので、タイムゾーンの設定は合わせる必要アリ。
NOW()
はサーバー側で実行されるので、サーバー側の時刻になります。クライアントが自分のタイムゾーンの時刻を取得して値を設定するとクライアントの時刻になります。
NOW()
等の時刻取得関数はタイムゾーンの影響を受けるので、サーバーとクライアントのタイムゾーンは合わせておいた方が無難です。