Keycloak导出命令仅支持H2数据库URL,无法导出MariaDB数据求助
环境版本
- Keycloak版本:
20.0.1 - Docker版本:
20.10.12 - Docker-Compose版本:
2.2.2
问题描述
我需要从MariaDB数据库导出Keycloak数据,但始终无法成功。参考了Keycloak官方的导入导出文档。
即便提前执行了build --db=mariadb指定数据库类型,export命令依然只接受H2数据库的URL格式。执行导出时触发以下错误:
Datasource '<default>': URL format error; must be "jdbc:h2:{ {.|mem:}[name] | [file:]fileName | {tcp|ssl}:[//]server[:port][,server2[:port]]/name }[;key=value...]" but is "jdbc:mariadb://db.my-domain.de:3306/keycloak"
预期行为
希望export命令能够支持jdbc:mariadb:...格式的数据库URL。
实际行为
即便提前执行build --db=mariadb,export命令仍只识别jdbc:h2:...格式的URL;执行show-config命令显示kc.db = mariadb (KcEnvVarConfigSource),但该配置并未生效。
复现步骤
使用以下Docker Compose配置启动导出容器:
version: '3.9' services: keycloak-export: container_name: keycloak-export image: quay.io/keycloak/keycloak:latest environment: KC_HOSTNAME: login.my-domain.com KC_HOSTNAME_STRICT_HTTPS: true KC_HTTP_ENABLED: false KC_PROXY: edge KC_DB: mariadb KC_DB_URL_HOST: db.my-domain.com KC_DB_URL_DATABASE: keycloak KC_DB_URL_PORT: 3306 KC_DB_USERNAME: *** KC_DB_PASSWORD: *** KC_HTTPS_KEY_STORE_FILE: /keystore.p12 KC_HTTPS_KEY_STORE_PASSWORD: *** command: - export --dir /export_data volumes: - ./keystore.p12:/keystore.p12 - ./export_data:/export_data restart: "no"
补充信息
生产环境中Keycloak连接MariaDB的Docker Compose配置如下:
version: '3.9' services: keycloak: container_name: keycloak image: quay.io/keycloak/keycloak:latest environment: KC_HOSTNAME: login.my-domain.de KC_HOSTNAME_STRICT_HTTPS: true KC_HTTP_ENABLED: false KC_PROXY: edge KC_DB: mariadb KC_DB_URL_HOST: db.my-domain.de KC_DB_URL_DATABASE: keycloak KC_DB_URL_PORT: 3306 KC_DB_USERNAME: *** KC_DB_PASSWORD: *** KC_HTTPS_KEY_STORE_FILE: /keystore.p12 KC_HTTPS_KEY_STORE_PASSWORD: *** KEYCLOAK_ADMIN: *** KEYCLOAK_ADMIN_PASSWORD: *** KC_TRANSACTION_XA_ENABLED: true KC_HEALTH_ENABLED: true KC_METRICS_ENABLED: true command: - start ports: - 8080:8080 volumes: - ./keystore.p12:/keystore.p12 restart: always
内容的提问来源于stack exchange,提问作者Kevin O.
相关产品推荐
相关产品推荐

