[keycloak-user] Configuring MySQL JDBC Driver with Keycloak-5.0.0

Mizuki Karasawa kmizuki88 at yahoo.com
Thu Apr 11 15:41:04 EDT 2019


Hi Jan, good catch! But that was the typo in the email, the actual configuration is good. ;)
Hi Aaron, good catch too! But that was the connect-j 8.0,  I'm using 5.0, I believe I had correct driver class name defined https://dev.mysql.com/doc/connector-j/5.1/en/connector-j-usagenotes-jboss.html , I confirmed the class name as well by connecting to WildFly console after loading the actually driver via deployment.I switched to connect-j 8.0, but got the same error. hmm....
Anything else might have triggered this?
Thanks!
Mizuki Karasawa 

    On Thursday, April 11, 2019, 1:07:55 PM CDT, Aaron Echols <aechols at bfcsaz.com> wrote:  
 
 You need to update your driver class. Had the same issue coming from 4.8.3 > 5.0.0. You'll have to check the MySQL docs for using option jdbc classes. This might be it, but I'm not sure without further research:
https://dev.mysql.com/doc/connector-j/8.0/en/connector-j-reference-driver-name.html  

https://github.com/keycloak/keycloak/pull/5660/commits/fff753d4fd6ca56279e9e873618ba537e55abeaf#diff-39dac83c21cd39ac45302c6213854e23
I user MariaDB Galera and had to use the optional jdbc class.
https://mariadb.com/kb/en/library/about-mariadb-connector-j/#optional-jdbc-classes
--Aaron Echols
On Thu, Apr 11, 2019 at 10:56 AM Jan Lieskovsky <jlieskov at redhat.com> wrote:

Hello Karasawa-san,

On Thu, Apr 11, 2019 at 7:08 PM Mizuki Karasawa <kmizuki88 at yahoo.com> wrote:

> Hi,
> Has anyone successfully load MySQL JDBC driver with Keycloak-5.0.0?
> Following
> https://www.keycloak.org/docs/5.0/server_installation/index.html#_database
> , it should be straightforward, but I'm getting error when Keycloak starts:
>
> 2019-04-10 14:08:12,055 ERROR
> [org.jboss.as.controller.management-operation] (ServerService Thread Pool
> -- 28) WFLYCTL0013: Operation ("add") failed - address: ([
>     ("subsystem" => "datasources"),
>     ("jdbc-driver" => "mysql")
> ]) - failure description: "WFLYJCA0041: Failed to load module for driver
> [org.mysql]"
> This can be reproduced after driver is configured, before configuring
> datasource 'KeycloakDS' to user the JDBC driver, following are the steps
> that i followed:
>
> 1. yum install mysql-connector-java
>
> 2. mkdir -p /opt/keycloak/modules/system/layers/keycloak/org/mysql/main/
>
> 3. cd /opt/keycloak/modules/system/layers/keycloak/org/mysql/main/
>
> 4. ln -s /usr/share/java/mysql-connector-java.jar ./
>
> 5. cat << EOF > module.xml<?xml version="1.0" encoding="UTF-8"?>
> <module xmlns="urn:jboss:module:1.3" name="org.mysql">
>   <resources>
>     <resource-root path="mysql-connector-jav.jar" />
>

I think you have a typo here -- missing the 'a' character before the .jar
suffix:

# rpm -ql mysql-connector-java | grep jar
/usr/share/java/mysql-connector-java.jar


>   </resource>
>   <dependencies>
>     <module name="javax.api"/>
>     <module name="javax.transaction.api"/>
>   </dependencies>
> </module>
> EOF
>
> 6. Declare the driver in
> /opt/keycloak/standalone/configuration/standalone.xml , add the driver to
> the <drivers> section:
> <drivers>   ....
>    <driver name="mysql" module="org.mysql">
>       <driver-class>org.mysql.jdbc.Driver</driver-class>
>    </driver></drivers>
> 7. restart Keycloak
>
> Note that changing to various JDBC drivers doesn't make a difference, just
> to test the driver itself is fine, I connect to localhost console via
> http://localhost:9990, and loaded the driver as the new deployment, and
> configured the datasource to use the driver seems to be working fine.
> Does anyone have suggestions what is possibly going on?
>

HTH


>
> Thanks a lot!
> Mizuki
>

Jan


>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
> <?xml version="1.0" encoding="UTF-8"?><module xmlns="urn:jboss:module:1.3"
> name="org.mysql">  <resources>    <resource-root
> path="mysql-connector-java-bin.jar" />  </resource>  <dependencies>
> <module name="javax.api"/>    <module name="javax.transaction.api"/>
> </dependencies></module>EOF
>
> - Add JDBC driver type to
> '/opt/keycloak/standalone/configuration/standalone.xml' in <datasources>
> block as followng:
>                 <drivers>                    <driver name="h2"
> module="com.h2database.h2">
> <xa-datasource-class>org.h2.jdbcx.JdbcDataSource</xa-datasource-class>
>               </driver>                    <driver name="mysql"
> module="org.mysql">
> <driver-class>org.mysql.jdbc.Driver</driver-class>
> </driver>                </drivers>
> Before I change actual 'KeyclockDS' datasource to use MySQL, I restart the
> service to confirm the JDBC driver is successfully load, but I got
> following error:
> 2019-04-10 14:08:12,055 ERROR
> [org.jboss.as.controller.management-operation] (ServerService Thread Pool
> -- 28) WFLYCTL0013: Operation ("add") failed - address: ([    ("subsystem"
> => "datasources"),    ("jdbc-driver" => "mysql")]) - failure description:
> "WFLYJCA0041: Failed to load module for driver [org.mysql]"
> _______________________________________________
> keycloak-user mailing list
> keycloak-user at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/keycloak-user
_______________________________________________
keycloak-user mailing list
keycloak-user at lists.jboss.org
https://lists.jboss.org/mailman/listinfo/keycloak-user

  


More information about the keycloak-user mailing list