Skip to content

spring-booot使用mysql设置

· 2 min · spring-boot / mysql / java / workspace

spring-boot 项目使用mysql,数据的时区错误问题排查#

环境#

问题#

排查解决#

检查服务器机器的时间/时区#

Terminal window
$ date
$ date -R
Terminal window
$ tzselect
Terminal window
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
Terminal window
sudo hwclock -w
hwclock -r

检查docker 容器设置.#

Terminal window
podman run -p 3307:3306 --name mysql -e MYSQL_ROOT_PASSWORD=Olsond@0920 \
--restart always \
-e TZ=Asia/Shanghai \
-V /etc/localtime:/etc/localtime:ro \
-v /home/olsond/data/podman_data/mysql/data:/var/lib/mysql \
-v /home/olsond/data/podman_data/mysql/conf/my.cnf:/etc/mysql/conf.d/my.cnf \
-v /home/olsond/data/podman_data/mysql/logs:/mysql/logs \
-itd mysql:latest \
--lower_case_table_names=1
--character-set-server=utf8mb4 \
--collation-server=utf8mb4_unicode_ci \

检查 mysql 时区设置#

# 查看数据库的当前时间
select now();
#time_zone说明mysql使用system的时区,system_time_zone说明system使用CST时区
show variables like "%time_zone%";
[mysqld]
default-time-zone = '+08:00'
character-set-server = utf8

注意修改配置文件后一定要重启mysql才能生效.

应用设置#

spring:
jackson:
date-format: "yyyy-MM-dd HH:mm:ss"
time-zone: 'GMT+'