1. 基本環境
java
版本
java -version
mysql
版本是mysql8
keycloak
版本9.0.2
2. 安裝
直接解壓縮到某個目錄,父目錄不帶空格即可
1. 配置mysql驅動
mysql-connector-java-8.0.18jar包下載地址
${KEYCLOAK_HOME}/modules/system/layers/base/com/mysql/main
創建目錄: ${KEYCLOAK_HOME}\modules\system\layers\base\com\mysql\main\
,把驅動文件 mysql-connector-java-8.0.13.jar 復制到此目錄
新建文件:module.xml
,內容如下:
<?xml version="1.0" encoding="UTF-8"?>
<module name="com.mysql" xmlns="urn:jboss:module:1.5">
<resources>
<resource-root path="mysql-connector-java-8.0.18.jar"/>
</resources>
<dependencies>
<module name="javax.api"/>
<module name="javax.transaction.api"/>
<module name="javax.servlet.api" optional="true"/>
</dependencies>
</module>
2. 修改standalone.xml 文件
${KEYCLOAK_HOME}\standalone\configuration\standalone.xml
插入如下配置
<driver name="mysql" module="com.mysql">
<xa-datasource-class>com.mysql.cj.jdbc.MysqlXADataSource</xa-datasource-class>
</driver>
查找 datasources
一節,修改 jndi-name="java:jboss/datasources/KeycloakDS
這節的xml,內容如下
<datasource jndi-name="java:jboss/datasources/KeycloakDS" pool-name="KeycloakDS" enabled="true" use-java-context="true">
<connection-url>jdbc:mysql://localhost:3306/keycloak?useSSL=false&serverTimezone=GMT%2B8&characterEncoding=UTF-8</connection-url> <!-- 增加時區東八區,增加強制UTF8編碼,讓其能夠寫入特殊字符,關閉ssl警告 -->
<driver>mysql</driver>
<security>
<user-name>root</user-name>
<password>123456</password>
</security>
</datasource>
注意修改數據庫配置信息
3. 創建mysql數據庫
create database keycloak default character set = "UTF8" default collate = "utf8_general_ci";
-- 或者如下命令檢查數據庫是否正確
show create database keycloak;
'keycloak', 'CREATE DATABASE `keycloak` /*!40100 DEFAULT CHARACTER SET utf8 */'
utf8mb4庫不支持問題
4. 檢查mysql的配置文件my.ini是否設置超時時間
[mysqld]
wait_timeout=10000
interactive_timeout=10000
如果不配置,安裝keycloak
會報錯參考[getting the error when I am trying to connect my mysql server with keycloak at my local in standalone mode.](https://developer.jboss.org/message/962145)
配置完畢后記得重啟mysql
5. 安裝keycloak
進入keycloak
解壓目錄中的bin
文件夾,以管理員權限運行standalone.bat
此時即是以單機模式啟動keycloak