Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table 'actspring.act_ge_property'

在学习activiti流程引擎时,将activiti与springboot整合,可以自动部署流程流程,但是我的一直报错说:Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table 'actspring.act_ge_property',这时候重启大法也不好用,我又重新看了一遍教程,没有什么区别,后来百度该错误,找到一条帖子说是因为MySQL版本的问题,MySQL版本8.xxx以后当上会出现该问题,我一看我的pom.xml文件中没有写版本号,看到引入的包默认为8.xxx版本,改成了5.1.6版本,该错误解决了。

原因

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

解决办法

配置mysql连接时加上:nullCatalogMeansCurrent=true
即:useUnicode=true&characterEncoding=utf8 &nullCatalogMeansCurrent=true&useSSL=false&useLegacyDatetimeCode=false&serverTimezone=UTC

参考自该博主的博客

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐