因为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