MariaDBでタイムゾーンを正しく扱うためのヒント
MariaDBでタイムゾーンテーブルを設定する方法
MariaDB 10.2以降では、タイムゾーン情報が5つのテーブルに分割されています。
mysql.time_zone
mysql.time_zone_leap_second
これらのテーブルを設定することで、MariaDBでタイムゾーン機能を利用できます。
手順
-
タイムゾーン情報を取得する
mysql_tzinfo_to_sql > timezones.sql
-
タイムゾーンテーブルを作成する
取得したタイムゾーン情報を使用して、タイムゾーンテーブルを作成します。
mysql -u root -p < timezones.sql
-
system_time_zone
変数を使用して、デフォルトのタイムゾーンを設定できます。SET GLOBAL system_time_zone = 'Asia/Tokyo';
-
mysql> SHOW VARIABLES LIKE 'system_time_zone'; +--------------------------+-------------------------+ | Variable_name | Value | +--------------------------+-------------------------+ | system_time_zone | Asia/Tokyo | +--------------------------+-------------------------+
補足
- タイムゾーンテーブルは、MariaDBを起動するたびに読み込まれます。そのため、タイムゾーン情報を変更した場合は、MariaDBを再起動する必要があります。
mysql_tzinfo_to_sql
ツールは、MariaDBの公式リポジトリからダウンロードできます。
この情報は参考用であり、予告なく変更されることがあります。
-- タイムゾーン情報を取得する
mysql_tzinfo_to_sql > timezones.sql
-- タイムゾーンテーブルを作成する
mysql -u root -p < timezones.sql
-- タイムゾーンを設定する
SET GLOBAL system_time_zone = 'Asia/Tokyo';
-- タイムゾーンを確認する
SHOW VARIABLES LIKE 'system_time_zone';
mysql_tzinfo_to_sql
ツールを使用して、タイムゾーン情報を取得します。
出力例
-- タイムゾーン情報を取得する
mysql_tzinfo_to_sql > timezones.sql
-- タイムゾーンテーブルを作成する
mysql -u root -p < timezones.sql
-- タイムゾーンを設定する
SET GLOBAL system_time_zone = 'Asia/Tokyo';
-- タイムゾーンを確認する
SHOW VARIABLES LIKE 'system_time_zone';
+--------------------------+-------------------------+
| Variable_name | Value |
+--------------------------+-------------------------+
| system_time_zone | Asia/Tokyo |
+--------------------------+-------------------------+
- このサンプルコードは、MariaDB 10.2以降で動作します。
- タイムゾーン情報は、定期的に更新されます。最新の情報を入手するには、MariaDBの公式リポジトリから
mysql_tzinfo_to_sql
ツールをダウンロードしてください。
MariaDBでタイムゾーンテーブルを設定するその他の方法
MariaDBの公式ドキュメント (https://mariadb.com/kb/en/time-zones/) に記載されている手順に従って、手動でタイムゾーンテーブルを設定することができます。
GUIツールを使用する
MySQL WorkbenchなどのGUIツールを使用して、タイムゾーンテーブルを設定することができます。
スクリプトを使用する
タイムゾーンテーブルを設定するスクリプトを作成することができます。
各方法の詳細
手動で設定するには、以下の手順に従います。
- タイムゾーン情報のファイルを解凍します。
- 解凍したファイル内の
timezones.sql
ファイルを実行します。
MySQL WorkbenchなどのGUIツールを使用するには、以下の手順に従います。
- MariaDBサーバーに接続します。
- スクリプトを実行します。
mariadb