因為Centos的停更以及Odoo版本升級後更加友好的支援了Ubuntu所以釋出Odoo服務使用了Ubuntun系統環境,因為Odoo為國外人開發所以他們預設程式碼中處理了跨時區的問題,便於在國內可以友好顯示,但是我還不能手動去調時區,要不然就的處理Odoo的原始碼了,可是我還有另一個MySQL的新環境要釋出上來,釋出後發現MySQL的時間儲存以及頁面顯示出現了時區的差異,以下就是基於以上兩點的最簡單的解決辦法!
檢視MySQL的預設時區
SELECT @@global.time_zone, @@session.time_zone;
正常會顯示預設時區UTC
修改MySQL的時區(永久)
- 修改MySQL的配置檔案(my.cnf)
[mysqld]
default-time-zone = 'Asia/Shanghai'
- 新增以上內容後重啟MySQL服務
如果啟動失敗不出意外應該是MYSQL沒有掛載系統整合的所有時區的配置檔案導致的使用如下方法
- 指定時區所在檔案
mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root -p mysql
會提示輸入密碼,輸入MySQL的密碼即可
- 重啟服務後驗證時區
SELECT @@global.time_zone, @@session.time_zone;
- 結果顯示如上資訊代表修改時區完成
- 修改JDBC連線
jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=Asia/Shanghai
- 指定時區 serverTimezone=Asia/Shanghai