KEYCLOAK集成MYSQL

本文介绍如何将Keycloak与MySQL数据库进行集成,包括配置数据库驱动、设置数据源及连接细节等步骤,帮助读者更好地理解并实施Keycloak的数据库迁移。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

KEYCLOAK集成MYSQL

Keycloak中已经嵌入H2数据库,但是为了更方便的查看数据以及后续的Keycloak其他操作,这里我们使用MySQL数据库,如果读者使用过wildfly,对于数据库的配置可以说是再熟悉不过了. 首先要下载对应数据库的驱动,配置的路径为:

${KEYCLOAK_HOME}/modules/system/layers/base/com/mysql/main

这个路径下要求有driver(mysql-connector-java-5.1.42.jar 当然你也可以选择自己的想用的jar包)和一个module.xml文件

module.xml文件内如下:

<?xml version="1.0" encoding="UTF-8"?>
<module xmlns="urn:jboss:module:1.3" name="com.mysql">
    <resources>
        <resource-root path="
mysql-connector-java-5.1.42.jar"/>
    </resources>
    <dependencies>
        <module name="javax.api"/>
        <module name="javax.transaction.api"/>
<module name="javax.servlet.api" optional="true"/>
    </dependencies>

</module>

注意:红色字体的部分一定要一致

其次,由于是单机所以需要修改${KEYCLOAK_HOME}/standalone/configuration/standalone.xml 文件 

<subsystem xmlns="urn:jboss:domain:datasources:4.0">
     <datasources>
       ...
       <datasource jta="true" jndi-name="java:jboss/datasources/KeycloakDSMySQL" pool-name="KeycloakDSMySQL" enabled="true" use-ccm="true">
           <connection-url>jdbc:mysql://localhost:3306/KeycloakDS</connection-url>
           <driver-class>com.mysql.jdbc.Driver</driver-class>
           <driver>mysql</driver>
           <security>
               <user-name>username</user-name>
               <password>password</password>
           </security>
           <validation>
               <valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.mysql.MySQLValidConnectionChecker"/>
               <background-validation>true</background-validation>
               <exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.mysql.MySQLExceptionSorter"/>
            </validation>
      </datasource>
       <drivers>
          <driver name="h2" module="com.h2database.h2">
              <xa-datasource-class>org.h2.jdbcx.JdbcDataSource</xa-datasource-class>
          </driver>
           <driver name="mysql" module="com.mysql">
              <xa-datasource-class>com.mysql.jdbc.jdbc2.optional.MysqlXADataSource</xa-datasource-class>
           </driver>
       </drivers>
     </datasources>


红色字体是本次需求添加的内容

关联Keycloak和数据库

<subsystem xmlns="urn:jboss:domain:keycloak-server:1.1">

    ...
    <spi name="connectionsJpa">
     <provider name="default" enabled="true">
         <properties>
             <property name="dataSource" value="java:jboss/datasources/KeycloakDSMySQL"/>
             <property name="initializeEmpty" value="false"/>
             <property name="migrationStrategy" value="manual"/>
             <property name="migrationExport" value="${jboss.home.dir}/keycloak-database-update.sql"/>
         </properties>
     </provider>
    </spi>
    ...
</subsystem>
注意: dataSource的value值和上面的jndi-name的值保持一致. 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值