You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Docker Compose部署Keycloak连接本地MySQL时区乱码如何解决

解决方案

你可以直接在Keycloak服务的environment配置块中新增DB_JDBC_PARAMS环境变量传入时区参数,这个环境变量专门用来传递额外的JDBC连接参数。

具体修改步骤

  1. 在现有environment列表中添加一行配置,将serverTimezone参数设为你需要的时区,例如中国大陆地区常用Asia/Shanghai:
- DB_JDBC_PARAMS=useSSL=false&serverTimezone=Asia/Shanghai&characterEncoding=utf8

你可以根据实际需求调整时区值,也可以同时追加其他需要的JDBC参数,比如是否开启SSL、字符编码配置等。

修改后完整的Docker Compose配置参考

version: '3.8'
services:
    keycloak:
        container_name: keycloak
        image: jboss/keycloak:15.0.2
        command:
          [
            '-b',
            '0.0.0.0',
            '-Dkeycloak.migration.action=import',
            '-Dkeycloak.migration.provider=dir',
            '-Dkeycloak.migration.dir=/opt/jboss/keycloak/realm-config',
            '-Dkeycloak.migration.strategy=OVERWRITE_EXISTING',
            '-Djboss.socket.binding.port-offset=1000',
            '-Dkeycloak.profile.feature.upload_scripts=enabled',
          ]
        volumes:
          - ./realm-config:/opt/jboss/keycloak/realm-config
        environment:
          - KEYCLOAK_USER=admin
          - KEYCLOAK_PASSWORD=xxxxxxx
          - DB_VENDOR=mysql
          - DB_USER=xxxxxxx
          - DB_PASSWORD=xxxxxxxxxx
          - DB_DATABASE=xxxxxx
          - DB_ADDR=host.docker.internal
          # 新增下面这行配置
          - DB_JDBC_PARAMS=useSSL=false&serverTimezone=Asia/Shanghai&characterEncoding=utf8

验证方法

修改配置后重新执行docker compose up -d启动服务即可,时区报错会直接消失。

内容的提问来源于stack exchange,提问作者Daniel Hua

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 10:54:02