MySQLでその接続セッション中のタイムゾーンを設定しようとしたらエラーが出た:
mysql> SET @@SESSION.time_zone = "Asia/Tokyo"; ERROR 1298 (HY000): Unknown or incorrect time zone: 'Asia/Tokyo'
原因はMySQLにタイムゾーンに関する情報が入っていなかったためらしく、それを保持するmysql.time_zone
テーブルが空っぽだった:
mysql> select * from mysql.time_zone; Empty set (0.00 sec)
次のようにmysql_tzinfo_to_sql
コマンドでzoneinfoを変換してmysqlに登録したら、設定できるようになった:
root# mysql_tzinfo_to_sql /usr/share/zoneinfo/ | mysql -u root mysql
タイムゾーンを変換するCONVERT_TZ()
関数でもこの情報は必要になるので要注意。