DB : LinuxでMariaDBのタイムゾーンを設定する。

設定環境

使用するOSはUbuntuで、タイムゾーンはAsia/Tokyoにします。

タイムデータのインポート

デフォルトの状態だとタイムゾーンのデータがなく、UTC+0がtime_zoneに設定されています。

試しに、show variables like '%time_zone%'; で確認してみると日本標準時で設定されていないのがわかります。

+——————+——–+
| Variable_name | Value |
+——————+——–+
| system_time_zone | JST |
| time_zone | SYSTEM |
+——————+——–+

ということで、タイムゾーンデータをインポートします。
以下を実行してください。
[bash]
/usr/bin/mysql_tzinfo_to_sql /usr/share/zoneinfo > ~/timezone.sql
mysql -u root -p -Dmysql < ~/timezone.sql
[/bash]

[code lang=”text”]
Warning: Unable to load '/usr/share/zoneinfo/leap-seconds.list' as time zone. Skipping it.
[/code]

と表示されるかもしれませんが、無視しても問題はありませんでした。

Asia/Tokyoを設定

my.cnfファイルに

[text]
[mysqld]
default-time-zone = ‘Asia/Tokyo’
[/text]

を追記します。

私の環境だと、設定ファイルは/etc/mysql/にありました。

再起動

MariaDBを再起動し、再び show variables like '%time_zone%'; するとtime_zoneのところがAsia/Tokyoになっているはずです。

参考
https://qiita.com/tailak/items/63dce2dd7dfe049b038e