问题
MariaDB 的函数 now() 得到的时间比正常时间少8小时
导致的原因分析
查看服务器系统时间
[root@10-25-245-29 spring4all]# timedatectl
Local time: 一 2017-11-06 10:36:15 CST
Universal time: 一 2017-11-06 02:36:15 UTC
RTC time: 一 2017-11-06 02:36:15
Time zone: Asia/Shanghai (CST, +0800)
NTP enabled: yes
NTP synchronized: no
RTC in local TZ: no
DST active: n/a
查询数据库的时间
select now();
查询数据库时区
show global variables like 'system_time_zone';
可以看出是默认的时区设置导致的问题
解决方法
# 修改全局时间
set global time_zone = '+8:00';
# 修改当前会话时间
set time_zone = '+8:00';
# 立即生效
flush privileges;
验证结果
select now();