keycloak迁移数据库到mysql

keycloak官网

https://www.keycloak.org/

keycloak项目地址

https://github.com/keycloak/keycloak

keycloak官方文档地址

https://www.keycloak.org/documentation.html

keycloak下载地址

https://www.keycloak.org/downloads.html

最近在研究有关于身份认证授权相关的项目,然后在老师傅的指导下来研究使用这个keycloak;根据官方的快速开始手册,我很快就能创建好超级用户进入到设置界面;然后发现这个项目默认使用的是h2数据库,而且这个项目文档也提建议用户使用自己的数据库进行服务

1:根据官方文档,我们需要一个连接工具,因为我用的是mysql,所以就找一个相关的jar包;并将其配置到base目录下,例如我这里的目录就是:
E:\keycloak\keycloak-8.0.1\modules\system\layers\base\com
然后新建mysql文件夹,并在mysql文件夹下面新建一个main文件夹,完整目录就是
E:\keycloak\keycloak-8.0.1\modules\system\layers\base\com\mysql\main
;然后在里面放你的jar包,并设置你的module.xml配置文件
配置jar包位置
并在module.xml文件里面配置

<module name="com.mysql" xmlns="urn:jboss:module:1.3">
    <resources>
        <resource-root path="mysql-connector-java-5.1.44.jar"/>
    </resources>

    <dependencies>
        <module name="javax.api"/>
        <module name="javax.transaction.api"/>
        <module name="javax.servlet.api" optional="true"/>
    </dependencies>
</module>

这里是配置jar包xml
这里就已经完成了连接jar包的设置;
2.配置连接驱动
第一步我们已经配置好了连接驱动的设置,我们需要设置自己的连接驱动,这样才能让keycloak使用我们自己的驱动进行数据库连接
我们找到目录
E:\keycloak\keycloak-8.0.1\standalone\configuration;就是standalone\configuration目录下的standalone.xml配置文件,打开它,找到drivers标签,并在标签里面添加我们自己的驱动

<driver name="mysql" module="com.mysql">
                        <xa-datasource-class>com.mysql.jdbc.jdbc2.optional.MysqlXADataSource</xa-datasource-class>
                    </driver>

这里是在配置文件配置mysql连接驱动
因为连接驱动jar包的版本不同,所以连接的路径会不一样,这里主要是找到jar包MysqlXADataSource.class这个类的路径,可以用winRAR解压文件直接打开jar包找到jdbc路径下找这个类的路径,并将路径方到
这个标签
3.配置自己的数据库
配置数据库那就先要自己新建一个库,名字随意,然后找到datasources标签,并将原来的KeycloakDS这个数据源给注释掉,并添加上自己的数据源

<datasource jndi-name="java:jboss/datasources/KeycloakDS" pool-name="KeycloakDS" enabled="true" use-java-context="true" >
                    <connection-url>jdbc:mysql://127.0.0.1:3306/keyloak7?useSSL=false&amp;serverTimezone=GMT%2B8&amp;characterEncoding=UTF-8</connection-url>
                    <driver>mysql</driver>
                    <security>
                        <user-name>root</user-name>
                        <password>root</password>
                    </security>
                </datasource>

数据源配置
4.其他配置

<properties>
                        <!--<property name="dataSource" value="java:jboss/datasources/KeycloakDSMySQL"/>-->
						<property name="dataSource" value="java:jboss/datasources/KeycloakDS"/>
                       <!-- <property name="initializeEmpty" value="true"/>
                        <property name="migrationStrategy" value="update"/>-->
						<property name="initializeEmpty" value="false"/>
                        <property name="migrationStrategy" value="manual"/>
                        <property name="migrationExport" value="${jboss.home.dir}/keycloak-database-update.sql"/>
                    </properties>

根据官方的建议,需要将
在这里插入图片描述
图中的两个属性分别设置为false以及manual;至此,所有的配置都已配置完成,可以通过点击standalone.bat(因为我用的是windows,其他系统根据自己的选择启动)启动项目

5.极有可能发生的情况;即使按照官方文档的配置完成了数据切换的配置,但是仍然大概率发生服务启动失败的情况,此时你需要通过命令行启动mysql,登录mysql,并选择你的数据库,最后执行解压目录下keycloak-database-update.sql文件,然后重新启动服务
5.1如果没有配置mysql环境变量到系统,只能找到mysql的bin目录,并输入命令mysql -h localhost -u root -p
连接数据库
输入密码后就能连接上你自己的数据库了;
5.2选择你自己的数据库,就是需要切换的那个,命令就是use keyloak7
5.3执行你的keycloak-database-update.sql文件;因为这个文件不在mysql的根目录下。所以你只能找到他的绝对路径去执行
例如我这里就是source E:\keycloak\keycloak-8.0.1\keycloak-database-update.sql
在这里插入图片描述

等待执行完成,重启服务,出现以下代表服务已经启动
在这里插入图片描述
那么你就可以在浏览器里面直接输入
http://localhost:8080/auth
进行设置;到此,数据库切换到mysql就已经完成

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值