SOFTELメモ Developer's blog

会社概要 ブログ 調査依頼 社員募集 ...

mysqlbinlogはタイムゾーンの設定の影響を受ける

問題

海外のサーバーのMySQLのバイナリログを手元のサーバーまで持ってきて、日本のサーバーでmysqlbinlog したんですけど、時間が変みたいですよ?

答え

mysqlbinlogするサーバーのタイムゾーンの設定の影響を受けます。

海外のサーバーのバイナリログを日本に持ってきたら、タイムゾーンを指定してmysqlbinlogするとよいです。

環境変数 TZ にタイムゾーンを指定して mysqlbinlogしたら、そのタイムゾーンのときの時間にしてくれます。

そのままで日本時間

$ mysqlbinlog mysql-bin.000123 > 000123.log
$ head 000123.log
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
DELIMITER /*!*/;
# at 4
#120722  4:02:07 server id 1  end_log_pos 106   Start: binlog v 4, server v 5.1.47-log created 120722  4:02:07
...(以下略)...

世界標準時

$ TZ="GMT" mysqlbinlog mysql-bin.000123 > 000123.log
$ head 000123.log
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
DELIMITER /*!*/;
# at 4
#120721 19:02:07 server id 1  end_log_pos 106   Start: binlog v 4, server v 5.1.47-log created 120721 19:02:07
...(以下略)...

サマータイムがあったりしちゃうアメリカ東部標準時(EST)

$ TZ="EST" mysqlbinlog mysql-bin.000123 > 000123.log
$ head 000123.log
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
DELIMITER /*!*/;
# at 4
#120721 14:02:07 server id 1  end_log_pos 106   Start: binlog v 4, server v 5.1.47-log created 120721 14:02:07
...(以下略)...

タイムゾーンの一覧は?

なお、タイムゾーンの一覧はこのあたりを漁ると出てくる。

/usr/share/zoneinfo/
$ ls /usr/share/zoneinfo/
Africa      Atlantic   Chile    Eire     Factory  GMT-0      Iceland      Jamaica    Mexico   NZ        posix       ROC        Universal  zone.tab
America     Australia  CST6CDT  EST      GB       GMT+0      Indian       Japan      Mideast  NZ-CHAT   posixrules  ROK        US         Zulu
Antarctica  Brazil     Cuba     EST5EDT  GB-Eire  Greenwich  Iran         Kwajalein  MST      Pacific   PRC         Singapore  UTC
Arctic      Canada     EET      Etc      GMT      Hongkong   iso3166.tab  Libya      MST7MDT  Poland    PST8PDT     Turkey     WET
Asia        CET        Egypt    Europe   GMT0     HST        Israel       MET        Navajo   Portugal  right       UCT        W-SU

# ls /usr/share/zoneinfo/America/
Adak       Blanc-Sablon   Coral_Harbour  Ensenada    Hermosillo    Maceio       Montreal        Port_of_Spain  Scoresbysund   Tortola
Anchorage  Boa_Vista      Cordoba        Fortaleza   Indiana       Managua      Montserrat      Porto_Velho    Shiprock       Vancouver
Anguilla   Bogota         Costa_Rica     Fort_Wayne  Indianapolis  Manaus       Nassau          Puerto_Rico    St_Barthelemy  Virgin
Antigua    Boise          Cuiaba         Glace_Bay   Inuvik        Marigot      New_York        Rainy_River    St_Johns       Whitehorse
Araguaina  Buenos_Aires   Curacao        Godthab     Iqaluit       Martinique   Nipigon         Rankin_Inlet   St_Kitts       Winnipeg
Argentina  Cambridge_Bay  Danmarkshavn   Goose_Bay   Jamaica       Mazatlan     Nome            Recife         St_Lucia       Yakutat
Aruba      Campo_Grande   Dawson         Grand_Turk  Jujuy         Mendoza      Noronha         Regina         St_Thomas      Yellowknife
Asuncion   Cancun         Dawson_Creek   Grenada     Juneau        Menominee    North_Dakota    Resolute       St_Vincent
Atikokan   Caracas        Denver         Guadeloupe  Kentucky      Merida       Panama          Rio_Branco     Swift_Current
Atka       Catamarca      Detroit        Guatemala   Knox_IN       Mexico_City  Pangnirtung     Rosario        Tegucigalpa
Bahia      Cayenne        Dominica       Guayaquil   La_Paz        Miquelon     Paramaribo      Santarem       Thule
Barbados   Cayman         Edmonton       Guyana      Lima          Moncton      Phoenix         Santiago       Thunder_Bay
Belem      Chicago        Eirunepe       Halifax     Los_Angeles   Monterrey    Port-au-Prince  Santo_Domingo  Tijuana
Belize     Chihuahua      El_Salvador    Havana      Louisville    Montevideo   Porto_Acre      Sao_Paulo      Toronto

関連するメモ

コメント