JDBC驾驶员异常问题正在出现在KeyCloak服务中
我正在尝试使用外部MySQL Database-8版本配置在Helm-Chart上运行的KeyCloak-18版本。
这是我的Helm图表文件
值。yaml文件
image:
repository: quay.io/keycloak/keycloak
pullPolicy: IfNotPresent
# Overrides the image tag whose default is the chart appVersion.
tag: "18.0.0"
args: ["start-dev"
,"--log-console-color=true"
,"--db=mysql"
,"--db-username=****"
,"--db-password=*****"
,"--db-url=jdbc:mysql://194.148.0.57/keycloakblockchain"
]
部署文件
- name: {{ .Chart.Name }}
securityContext:
{{- toYaml .Values.securityContext | nindent 12 }}
image: "{{ .Values.image.repository }}:{{ .Values.image.tag | default .Chart.AppVersion }}"
imagePullPolicy: {{ .Values.image.pullPolicy }}
args: {{ .Values.args }}
错误
2022-05-05 02:43:50,762 ERROR [org.keycloak.quarkus.runtime.cli.ExecutionExceptionHandler] (main) ERROR: No suitable driver found for jdbc:mysql://194.148.0.57/keycloakblockchain
2022-05-05 02:43:38,765 WARN [org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator] (JPA Startup Thread: keycloak-default) HHH000342: Could not obtain connection to query metadata: java.sql.SQLException: No suitable driver found for jdbc:mysql://194.148.0.57/keycloakblockchain
at org.h2.jdbcx.JdbcDataSource.getJdbcConnection(JdbcDataSource.java:191)
at org.h2.jdbcx.JdbcDataSource.getXAConnection(JdbcDataSource.java:352)
at io.agroal.pool.ConnectionFactory.createConnection(ConnectionFactory.java:216)
at io.agroal.pool.ConnectionPool$CreateConnectionTask.call(ConnectionPool.java:513)
at io.agroal.pool.ConnectionPool$CreateConnectionTask.call(ConnectionPool.java:494)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at io.agroal.pool.util.PriorityScheduledExecutor.beforeExecute(PriorityScheduledExecutor.java:75)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1126)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at java.base/java.lang.Thread.run(Thread.java:829)```
I'm trying to configure my keycloak-18 running on helm-chart with external mysql database-8 version.
here is my helm chart file
values.yaml file
image:
repository: quay.io/keycloak/keycloak
pullPolicy: IfNotPresent
# Overrides the image tag whose default is the chart appVersion.
tag: "18.0.0"
args: ["start-dev"
,"--log-console-color=true"
,"--db=mysql"
,"--db-username=****"
,"--db-password=*****"
,"--db-url=jdbc:mysql://194.148.0.57/keycloakblockchain"
]
deployment file
- name: {{ .Chart.Name }}
securityContext:
{{- toYaml .Values.securityContext | nindent 12 }}
image: "{{ .Values.image.repository }}:{{ .Values.image.tag | default .Chart.AppVersion }}"
imagePullPolicy: {{ .Values.image.pullPolicy }}
args: {{ .Values.args }}
ERROR
2022-05-05 02:43:50,762 ERROR [org.keycloak.quarkus.runtime.cli.ExecutionExceptionHandler] (main) ERROR: No suitable driver found for jdbc:mysql://194.148.0.57/keycloakblockchain
2022-05-05 02:43:38,765 WARN [org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator] (JPA Startup Thread: keycloak-default) HHH000342: Could not obtain connection to query metadata: java.sql.SQLException: No suitable driver found for jdbc:mysql://194.148.0.57/keycloakblockchain
at org.h2.jdbcx.JdbcDataSource.getJdbcConnection(JdbcDataSource.java:191)
at org.h2.jdbcx.JdbcDataSource.getXAConnection(JdbcDataSource.java:352)
at io.agroal.pool.ConnectionFactory.createConnection(ConnectionFactory.java:216)
at io.agroal.pool.ConnectionPool$CreateConnectionTask.call(ConnectionPool.java:513)
at io.agroal.pool.ConnectionPool$CreateConnectionTask.call(ConnectionPool.java:494)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at io.agroal.pool.util.PriorityScheduledExecutor.beforeExecute(PriorityScheduledExecutor.java:75)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1126)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at java.base/java.lang.Thread.run(Thread.java:829)```
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
尝试删除 jdbc:,然后使用 mysql:/
Try removing the jdbc: and just use the mysql:/ instead
我也有同样的问题。我花了一些时间注意到
“ kc_db = mysql”
在构建生产图像时都有错字。如果您从这里使用了dockerfile: https://www.keycloak.orgak.org/server/server/server/containers
您只需要将
kc_db
环境var更改为mySQL。我的docker文件:
我的docker-compose.yml(我曾经在本地测试):
I had the same issue. Took me some time to notice that I had a typo in
"KC_DB=mysql"
while building the production image.If you used the Dockerfile from here: https://www.keycloak.org/server/containers
than you should just need to change the
KC_DB
environment var to mysql.My Docker file:
My docker-compose.yml (I used to test locally):