Camunda7.18流程引擎启动出现Table ‘camunda_platform_docker.ACT_GE_PROPERTY‘的解决方案

文章目录


1、问题描述

需要在docker中,部署Camunda流程引擎。通过启动脚本camunda-platform-dockerstart.sh 连接引擎。

本文使用的数据库为mysql8.0.21版本,camunda-platform-dockerstart.sh 脚本内容如下:

shell 复制代码
#!bin/bash
docker run -d --name camunda -p 8080:8080  \
           -e DB_DRIVER=com.mysql.cj.jdbc.Driver \
           -e DB_URL=jdbc:mysql://192.168.188.135:3306/camunda \
           -e DB_USERNAME=root \
           -e DB_PASSWORD=123456 \
           -e WAIT_FOR=192.168.188.135:3306 \
           camunda/camunda-bpm-platform:7.18.0

执行上述脚本时,出现如下错误提示:

Cause: java.sql.SQLSyntaxErrorException: Table 'camunda_platform_docker.ACT_GE_PROPERTY' doesn't exist

2、原因分析

mysql连接从6.x版本开始,将nullCatalogMeansCurrent属性由原来的默认true改为了false

  • true:使用指定的数据库进行查询。优先取当前传入的数据库名,其次取当前链接的数据库名。
  • false:代表遍历当前链接下的所有数据库(即从information_schema, mysqlperformance_schema 这三个系统DB中进行查询)。

所以,如果提前在虚拟机的mysql中,创建 过其他Camunda的数据库(非第一次创建Camunda流程引擎),则会存在activiti表。此时,使用同一个虚拟机ip下的mysql再次创建Camunda时,就算两张activiti表不在同一个数据库中,也会产生该错误。


3、解决方案

3.1、方案一:降低mysql版本

降低mysql版本至5.x,同时也应该使用mysql 5.x的数据库驱动进行连接:

powershell 复制代码
DB_DRIVER=com.mysql.jdbc.Driver

3.2、方案二:增加nullCatalogMeansCurrent参数(推荐)

在连接语句后增加:nullCatalogMeansCurrent=true

powershell 复制代码
DB_URL=jdbc:mysql://自己的虚拟机ip地址:3306/camunda?nullCatalogMeansCurrent=true

只要出现了以下49张表,说明Camunda流程引擎创建成功。


4、总结

  1. mysql版本降为5.x。

  2. 在数据库连接的url后面加上nullCatalogMeansCurrent=true

既然选择了mysql8.0的版本,更推荐使用第二种方案

相关推荐
MXsoft6181 分钟前
监控易监测对象及指标之:Kubernetes(K8s)集群的全方位监控策略
运维
怒放的生命.7 分钟前
电气自动化入门05:三相异步电动机的正反转点动控制电路
运维·自动化·电气自动化·电工基础
莫泽Morze11 分钟前
VMware安装rustdesk服务器
运维·服务器
jonssonyan23 分钟前
稳了,搭建Docker国内源图文教程
运维·docker·容器
福大大架构师每日一题31 分钟前
16.2 k8s容器基础资源指标讲解
云原生·容器·kubernetes·prometheus
周湘zx31 分钟前
k8s中的微服务
linux·运维·服务器·微服务·云原生·kubernetes
工业甲酰苯胺1 小时前
k8s 中的 Ingress 简介
云原生·容器·kubernetes
如意机反光镜裸2 小时前
CentOS7搭建Hadoop3集群教程
运维
周湘zx2 小时前
k8s中的存储
linux·运维·云原生·容器·kubernetes
[听得时光枕水眠]2 小时前
【Docker】Docker上安装MySql8和Redis
运维·docker·容器