这个问题似乎与Keycloak使用的默认数据库H2相关。如果在容器中使用H2数据库,然后没有正确关闭它而导致容器在下次启动时无法通过删除PingData来删除数据。
要解决这个问题,可以尝试以下方法:
方法1:手动删除数据
停止容器:docker stop
进入到Keycloak容器:docker exec -it
进入到Keycloak数据库目录:cd /opt/bitnami/keycloak/bin
启动一个Keycloak服务器:sh ./standalone.sh &
下载h2.jar(如果还没有安装它):wget http://central.maven.org/maven2/com/h2database/h2/1.4.200/h2-1.4.200.jar
运行H2数据库控制台:java -cp h2-1.4.200.jar org.h2.tools.Shell -url jdbc:h2:/opt/bitnami/keycloak/standalone/data/keycloak -user sa -password
进入到数据库控制台后,使用以下命令删除PingData:delete from ping_data;
退出数据库控制台后,停止Keycloak服务器(在容器中按ctrl+c
),然后退出容器。
启动Keycloak容器:docker start
方法2:在容器运行时启用TCP协议