版本信息:
jdk:17
mysql:8.0.36
activiti:7.0.0.Beta1
1、使用 java 整合 activiti 的时候,创建数据表时报错,报错信息如下:
2、原因:
这里使用 mysql8 版本,默认 nullCatalogMeansCurrent 属性为false,导致 activiti 向 mysql 服务器所有的数据库中查找所需要的表,因为我其他数据库有了 activiti 生成的表,activiti 并不会在我指定的数据库中继续生成表,所以才会报错 **.表名不存在 的错误。
3、解决方法
在 jdbcUrl 属性值中,添加 &nullCatalogMeansCurrent=true ,设置只扫描当前的数据库,而不去其他数据库中查找表。
4、补充
不同 MySQL 驱动 nullCatalogMeansCurrent 默认情况:
从mysql-connector-java 5.x 版本起,nullCatalogMeansCurrent 属性由原来的默认true改为了false;
6.0之后 nullCatalogMeansCurrent 默认又改为true;
8.0后默认又改为false。