解决CentOS部署应用时区显示异常的问题,数据库为MySQL

本文介绍了解决网站页面时间显示异常的方法,包括设置MySQL时区、调整Linux服务器时区及修改MySQL配置等步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

实际项目部署中,遇到了网站页面时间显示异常的问题,例如早晨9点的登录信息,显示的却是早晨1点,应该是时区的问题,经过一通修改,终于解决了这个问题,以下是步骤;

  1. 设置应用的MySQL数据库连接参数,加上&serverTimezone=GMT%2B8,以下是我修改完后的参数
jdbc.url=jdbc\:mysql\://ip地址\:3306/xxx?characterEncoding\=UTF-8&useSSL\=false&allowPublicKeyRetrieval\=true&useAffectedRows\=true&serverTimezone\=GMT%2B8&useJDBCCompliantTimezoneShift=true
  1. 设置Linux时区,通过date命令可以查看时区,通过date -R命令可以查看时区及时间,在中国的应用正确的时区及时间如下:
    在这里插入图片描述
    执行以下两条命令,即可将服务器时间修改正确,由于我们的应用使用了docker服务,应用及数据库并不在一个docker服务中,所以我对应用所在容器数据库所在容器还有宿主机均调整了时间时区,请根据自己的情况调整:
echo "Asia/Shanghai" > /etc/timezone
ln -sf /usr/share/zoneinfo/Asia/Shanghai  /etc/localtime
  1. 修改MySQL的配置文件my.cnf,版本不同配置文件不同,请根据自己的实际情况调整,我安装的是5.

版本的MySQL,所以是my.cnf配置文件,但是由于我们的应用的数据库是部署在docker容器里的,所以我需要直接修改容器内的MySQL的配置文件,进入docker容器前要执行docker ps -a查看容器列表,然后通过容器的id进入到对应容器中:
在这里插入图片描述

执行docker exec -it 容器id /bin/bash 来进入容器;

docker exec -it 361 /bin/bash

在这里插入图片描述
我的MySQL的my.cnf文件地址在/etc/my.cnf,vim /etc/my.cnf,加入这一行:

default-time_zone = '+8:00'

结果如图:
在这里插入图片描述
重启MySQL,然后查看一下时区:

show variables like "%time_zone";

我的结果如下,是正常的:
在这里插入图片描述
如果time_zone不是+8:00,可以用以下命令执行一下:

set time_zone = '+8:00';

如果不放心还可以查看一下数据库时间,与正常时间一致即可;

SELECT CURTIME();
  1. 重启调整时区的服务器的应用,查看应用时间,已完成时区的修复。
    在这里插入图片描述

注:我是上面的每一个动作都执行过一遍,才恢复正常的,大家的情况可能不一致,按实际情况设置即可

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值