数据库重启后,Keycloak 无法连接外部数据库?

苏博德乔希

我们正在使用 Keycloak 4.2.1.Final,我们注意到一些奇怪的问题。Keycloak 正在使用外部数据库 [Maria DB]

如何重现问题?

  1. 安装并运行 Keycloak。
  2. 使用外部数据库存储数据,我们使用 mariadb。
  3. Keycloak 启动/运行,MariaDB 启动并运行
  4. 现在停止 Mariadb 服务systemctl stop mariadb,然后启动 mariadbsystemctl start mariadb并检查 keycloak 不起作用
  5. 尝试登录 keycloak https://localhost:8666/auth并检查它不允许登录。
  6. 在服务器日志中,它将显示连接已关闭

解决方案 1 -

重新启动 Mariadb 后,它必须启动 Keycloak 服务,service keycloak restart然后 Keycloak 将开始正确响应。

但这不是一个可行的解决方案,我正在为此寻找合适的解决方案。有人遇到或检查过此类问题吗?

苏博德乔希

最后通过修改Keycloak的Stanalone.xml文件解决了这个问题。你可以在这个位置找到该文件/opt/keycloak/standalone/configuration/standalone.xml,你必须在文件中添加以下几行

 <validation>                   
       <check-valid-connection-sql>select 1</check-valid-connection-sql>
       <background-validation>true</background-validation>
       <background-validation-millis>15000</background-validation-millis>
    </validation>

<datasource/>添加上述更改后,应将此行添加到标签内,<datasource/>如下所示

<datasource jndi-name="java:jboss/datasources/KeycloakDS" pool-name="KeycloakDS" enabled="true" use-java-context="true"> 
     <connection-url>jdbc:mariadb://localhost:3306/DBName?autoReconnect=true</connection-url>
           <driver>mariadb</driver> 
            <security> 
             <user-name>user</user-name> 
             <password>${VAULT::datasource::default-password::1}</password>
             </security>
             <validation>                     
             <check-valid-connection-sql>select 1</check-valid-connection-sql>
             <background-validation>true</background-validation>
              <background-validation-millis>15000</background-validation-millis>
              </validation>
</datasource>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章