解决报错:Cause: java.sql.SQLSyntaxErrorException: Table '*.act_ge_property' doesn't exist

1、出现问题原因

原因是mysql版本问题,mysql8.xxx以上驱动会出现这个问题,下图是我原mysql配置,是8.0+。
因为mysql使用schema标识库名而不是catalog,因此mysql会扫描所有的库来找表,如果其他库中有相同名称的表,activiti就以为找到了,本质上这个表在当前数据库中并不存在。
设置nullCatalogMeansCurrent=true,表示mysql默认当前数据库操作,在mysql-connector-java 5.xxx该参数默认为true,在6.xxx以上默认为false,因此需要设置nullCatalogMeansCurrent=true。

2、解决方式

xml 文件配置 添加下面url 链接粗体部分

<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" value="com.mysql.cj.jdbc.Driver" />
<property name="url" value="jdbc:mysql://localhost:3306/activitidemo?useUnicode=true&characterEncoding=utf-8&useSSL=true&nullCatalogMeansCurrent=true&serverTimezone=UTC" />
<property name="username" value="root" />
<property name="password" value="root" />
</bean>

3、.yml文件 配置

配置mysql连接时加上:nullCatalogMeansCurrent=true 如粗体所示
url: jdbc:mysql://localhost:3306/demo2?useUnicode=true&characterEncoding=utf-8&useSSL=true&nullCatalogMeansCurrent=true&serverTimezone=UTC
username: root
password: root

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。