2017-03-03 73 views

回答

2

有三種方法可以解決這個問題。

Install the timezone database

mysql_tzinfo_to_sql程序加載在mysql數據庫中的時區表。它用於具有zoneinfo數據庫(描述時區的文件集)的系統上。這些系統的例子是Linux,FreeBSD,Solaris和OS X.這些文件的一個可能位置是/ usr/share/zoneinfo目錄(Solaris上的/ usr/share/lib/zoneinfo)。如果您的系統沒有zoneinfo數據庫,則可以使用第11.6節「MySQL服務器時區支持」中介紹的可下載軟件包。

mysql_tzinfo_to_sql可以調用幾種方法:

shell> mysql_tzinfo_to_sql tz_dir 
shell> mysql_tzinfo_to_sql tz_file tz_name 
shell> mysql_tzinfo_to_sql --leap tz_file 

對於第一次調用語法,通過區信息目錄路徑名mysql_tzinfo_to_sql並輸出發送到mysql的程序。例如:

shell> mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root mysql 

mysql_tzinfo_to_sql讀取系統的時區文件,並從中生成SQL語句。 mysql處理這些語句以加載時區表。

第二語法會導致mysql_tzinfo_to_sql加載一個時區文件tz_file對應於一個時區名稱tz_name:

shell> mysql_tzinfo_to_sql tz_file tz_name | mysql -u root mysql 

如果您的時區需要考慮到閏秒,調用mysql_tzinfo_to_sql使用第三種語法,它初始化閏秒信息。 tz_file是你的時區文件的名稱:

shell> mysql_tzinfo_to_sql --leap tz_file | mysql -u root mysql 

運行mysql_tzinfo_to_sql後,最好重新啓動服務器,以便它不會繼續使用任何以前緩存的時間段數據。

來源:https://dev.mysql.com/doc/refman/5.7/en/mysql-tzinfo-to-sql.html

Update your my.cnf file to use a timezone offset instead

default-time-zone = +0:00 

Remove or comment out offending statement from your my.cnf file

# default-time-zone = UTC 

這將導致它繼承了OS的時區來代替。

相關問題