springboot中shardingsphere配置换数据源后启动时报了以下的错误,觉得挺奇怪的,报错如下图所示:


解决方案:
排除了连接用户名密码错误、未开通数据库权限等可能性,最终查明由于连接信息中未加参数useSSL=false 导致的,类似于如下这种结尾加即可:
jdbc-url: jdbc:mysql://**.**.**.**:3306/app_center?useUnicode=true&characterEncoding=UTF-8&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=GMT%2B8&useSSL=false
原因分析:
1. useSSL:在MySQL5.7之前的版本,安全性较低,存在任何用户都可以连库,所以官方在5.7版本加大了对隐私的保护。并且采用了默认 useSSL = true值防止对数据库的随意修改,到了8.0版本,仍然保留了SSL,并且默认值为 true,所以只要将 “useSSL= false” 放在url后,且用连接符&即可
2.系统原数据库是9.0版本,切换到了5.6版本,未加该参数因此报错。
3.如果是用户名密码错误、未开通数据库权限等引起,不会报该错误,会报类似如下的错误:

文章讲述了在SpringBoot项目中使用ShardingSphere配置数据源时遇到的错误,原因是连接信息中缺少useSSL参数,尤其是从高版本MySQL(如9.0)切换到5.6时。添加useSSL=false参数可以解决这个问题。
1124

被折叠的 条评论
为什么被折叠?



