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

求助:Keycloak PostgreSQL数据库SQL脚本导入脚本及失败问题解决

Keycloak PostgreSQL数据库导入/导出SQL脚本的正确方法

错误原因分析

你之前的命令存在两个问题:

  • --file参数与\i元命令重复,二者选其一即可,不能混用
  • 本地的keycloak.sql未挂载到临时运行的psql客户端Pod中,导致Pod无法找到该文件

导入SQL脚本的正确方法

方法一:先传文件到Pod再执行导入

  1. 启动交互式psql客户端Pod(进入bash终端):
kubectl run psql-postgresql-client --rm --tty -i --restart='Never' --namespace ucp --image docker.io/bitnami/postgresql:11.7.0-debian-10-r37 --env="PGPASSWORD=$POSTGRES_PASSWORD" --command -- bash
  1. 打开新终端,将本地keycloak.sql复制到目标Pod:
kubectl cp keycloak.sql ucp/psql-postgresql-client:/tmp/keycloak.sql
  1. 返回第一个终端的Pod会话,执行导入命令(二选一即可):
# 使用--file参数
psql --host postgresql -U kong -d keycloakdb -p 5432 --file /tmp/keycloak.sql

# 或者使用\i元命令
psql --host postgresql -U kong -d keycloakdb -p 5432 -c "\i /tmp/keycloak.sql"

方法二:通过管道直接传递脚本内容(无需传文件)

直接将本地脚本内容通过管道传入psql命令,更简洁:

cat keycloak.sql | kubectl run psql-postgresql-client --rm -i --restart='Never' --namespace ucp --image docker.io/bitnami/postgresql:11.7.0-debian-10-r37 --env="PGPASSWORD=$POSTGRES_PASSWORD" --command -- psql --host postgresql -U kong -d keycloakdb -p 5432

导出数据库数据的脚本

如果需要导出Keycloak数据库内容,执行以下命令:

kubectl run psql-postgresql-client --rm -i --restart='Never' --namespace ucp --image docker.io/bitnami/postgresql:11.7.0-debian-10-r37 --env="PGPASSWORD=$POSTGRES_PASSWORD" --command -- pg_dump --host postgresql -U kong -d keycloakdb -p 5432 > keycloak_backup.sql

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 19:35:26