官网下载keycloak ,我的版本是
keycloak-4.5.0.Final.tar.gz上传到
linux,解压tar -zxvf keycloak-4.5.0.Final.tar.gz修改文件夹名称
mv keycloak-4.5.0.Final keycloak修改配置文件
vim keycloak/standalone/configuration/standalone.xml
注意:
xml中的&符号需要转义;这里的UTF-8必须大写,否则启动时抛异常
<datasource jndi-name="java:jboss/datasources/KeycloakDS" pool-name="KeycloakDS" enabled="true" use-java-context="true"> <connection-url>jdbc:mysql://10.8.12.113:3306/keycloak?autoReconnect=true&useUnicode=true&createDatabaseIfNotExist=true&characterEncoding=UTF-8</connection-url> <driver>mysql</driver> <security> <user-name>root</user-name> <password>root</password> </security> </datasource> <drivers> <driver name="mysql" module="com.mysql"> <xa-datasource-class>com.mysql.jdbc.jdbc2.optional.MysqlXADataSource</xa-datasource-class> </driver>修改
keycloak启动时的数据库更新模式,下面的代码在standalone.xml存在,只需要修改migrationStrategy属性的value值,官网的解释如下,我们使用manual模式,因为keycloak在启动时会创建90多张表,耗时很长,可能导致jboss启动超时,并且还会有其他问题。manual模式会创建一部分表,随后导出keycloak-database-update.sql在keycloak的解压目录,我们需要手动执行这个sql文件。
官网文档:https://www.keycloak.org/docs/latest/server_installation/index.html#database
<spi name="connectionsJpa"> <provider name="default" enabled="true"> <properties> <property name="dataSource" value="java:jboss/datasources/KeycloakDS"/> <property name="initializeEmpty" value="true"/> <property name="migrationStrategy" value="manual"/> <property name="migrationExport" value="${jboss.home.dir}/keycloak-database-update.sql"/> </properties> </provider> </spi>在第4步,我们使用了
mysql,因此需要配置mysql的module,并引入mysql的驱动包mkdir -p keycloak/modules/system/layers/base/com/mysql/main/ touch module.xmlmodule.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.40.jar"/> </resources> <dependencies> <module name="javax.api"/> </dependencies> </module>
初始化
keycloak管理员用户keycloak/bin/add-user-keycloak.sh -r master -u admin -p admin创建数据库
CREATE database keycloak DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci ;启动
keycloak,此过程会耗时很久,可能jboss会超时。在第5步,会生成keycloak-database-update.sql,我们使用mysql -uroot -proot --force keycloak < C:\Users\yangzhen\Desktop\keycloak-database-update.sql执行SQL,如果直接粘贴到mysql执行,会有Errorkeycloak/bin/standalone.sh再次启动,并访问 http://192.168.1.11:8080/auth/ ,点击
Administration Console, 使用第7步创建的管理员账号登录

keycloak的安装和启动
版权声明:本文为qq_30038111原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。