mysql8使用mysql_native_password密码规则,jdbc8怎么连

把数据库升到mysql8后,发现有些老应用无法连接上数据库。因为mysql8默认使用caching_sha2_password密码规则,与5.x版本的密码规则不一样,导致老应用密码校验通不过,连接不上。

这个问题的解决方式有两种:1.升级应用的mysql连接驱动。2.修改mysql的密码规则为老的mysql_native_password。

我选择了第2种方式,具体怎么做的,可以去网上搜,一大堆。

修改完了之后,我又有新的项目使用jdbc8来连这个数据库,这时出了个问题:使用com.mysql.cj.jdbc.Driver作为驱动程序时,总是提示连接不上,最后改回com.mysql.jdbc.Driver驱动类后,连接就成功了。

看来新老两个驱动类,在密码规则上都是硬绑定的,要用老的密码规则,必须用老的驱动类,用新的密码规则用新的驱动类。

不知道有没有办法通过url中配置密码规则的方式适配,如果找到了我再写一篇更新。


发表评论

电子邮件地址不会被公开。 必填项已用*标注