調べても出てこなかったので、備忘録的に残しておきます。
やりたいこと
CentOS 7.2 にインストールされたMySQLのタイムゾーンをJSTからUTCにしたい。
調べたら出てくる解決方法
my.cnf
$ cat /etc/my.cnf
[mysqld_safe]
timezone = UTC
my.cnf
が上記の状態でMySQLを再起動するが、変化なし。
はじめは原因が全くわからなかった
記述場所の問題やConfが上書きされている可能性を考えたが、全てクリア。
MySQLのタイムゾーン情報を取り込んでるし、
SET GLOBAL timezone=UTC
を実行すると変更されるので、起動時に設定が正しく反映されていないのはわかったんですが。
原因
調べてる過程で、mysqld_safe
にオプション渡して起動してみようと思ったら、mysqld_safe
がなかった。
なんでやねん、と思ってたらこんな情報を発見した。
記事内抜粋:
CentOS 7ではsystemd
で管理されているため、mysqld_safe
が使用できないようです。
これか・・・。
対応
というわけで、my.cnf
で設定の記述場所を以下に変更。
my.cnf
$ cat /etc/my.cnf
[mysqld]
timezone = UTC
mysqld_safe
のオプションはmysqld
に渡されているので、mysqld
の設定に記述してしまえばよいのでは、的な発想。
mysql> show variables like '%time_zone%';
+------------------+-------+
| Variable_name | Value |
+------------------+-------+
| system_time_zone | JST |
| time_zone | UTC |
+------------------+-------+
2 rows in set (0.00 sec)
いけたっぽい。
正しいのかは知らんけど。