0
点赞
收藏
分享

微信扫一扫

Docker环境安装MySQL

佃成成成成 2024-11-06 阅读 27

文章目录

SpringBoot应用部署到Docker中MySQL8时间戳相差8小时问题及处理方式

1. 检查MySQL服务器的时间区设置

确保MySQL服务器正确设置了所需的时间区。你可以通过执行以下SQL命令来查看和设置MySQL服务器的时间区

-- 查看当前会话的时间区
SELECT @@session.time_zone;

-- 设置会话时间区
SET time_zone = '+08:00'; -- 或者使用 'Asia/Shanghai' 等名称

2. 在Spring Boot应用程序中设置时间区

确保你的Spring Boot应用程序配置文件(如application.properties或application.yml)中正确设置了JDBC连接字符串,包含时间区参数。例如下面配置中的
serverTimezone=Asia/Shanghai指定了服务器的时间区为上海时区。

spring:
  # 数据源配置
  datasource:
    type: com.alibaba.druid.pool.DruidDataSource
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://127.0.0.1:3306/your_db?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=Asia/Shanghai&autoReconnect=true&rewriteBatchedStatements=true&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true
    username: ????
    password: ????

3. Docker容器中通过Dockerfile设置时区

如果你的应用程序运行在一个Docker容器中,确保容器也正确设置了时间区。可以通过在Dockerfile中添加相应的环境变量来设置时间区:

ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone

4. 在运行Docker容器时通过命令行传递环境变量

docker run -e TZ=Asia/Shanghai ...

5. 启动SpringBoot应用时设置JVM参数来指定时区

java -Duser.timezone=Asia/Shanghai -jar your_app.jar
举报

相关推荐

0 条评论