原因:
使用了高版本MySQL驱动
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>6.0.6</version>
</dependency>
mysql-connector-java在 6.x 版本驱动的时候就将参数 nullCatalogMeansCurrent 的默认值由 true 改为了 false
这个参数的意思是:是否默认返回 datasource 指定库的表。也就是如果为 true
,那么就从我们指定的数据库中找表;如果为 false
,那么就从所有库中找表。
解决方案我这里总结了两种:
将 MySQL 驱动
8.0
版本的降低到5.x
版本;初始化连接的时候,为
nullCatalogMeansCurrent
参数指定为true
:jdbc.url=jdbc:mysql:///sys?useUnicode=true&characterEncoding=UTF-8&nullCatalogMeansCurrent=true