java.sql.SQLException: ORA-28040: No matching authentication protocol
ORA-28040:没有匹配的身份验证协议
事情是这样的,之前项目连接的数据库是oracle9i,驱动用的ojdbc6,后来换成oracle12.1.0.2.0版本的数据库,项目也能正常连接上数据库,最后又换成oracle12.2.0.1版本的数据库,控制台就报这个错了,我本地使用Navicat是可以连接上数据库的,完全成功!也查了很多技术博客,试了许多遍,最后确定有用的方法就是换驱动!
去你连接的目标数据库,去oracle安装路径下找到所用驱动,路径应该是 $安装路径\product\12.2.0\dbhome_1\jdbc\lib,换用这个ojdbc8.jar(当然,我的这边发现服务器安装的oacle所用的是ojdbc8);
如果您的项目是maven项目,那就需要去修改pom.xml文件了(或许您的项目不是这个文件,就是里面都是项目需要用到的jar包),然后update maven,如果项目还是下载不下来那个jar包,可以直接去服务器拿那个ojdbc8,然后改名称自己需要的名字放进仓库的相应路径下就OK啦!
这样做的前提是,您本地可以使用Navicat或者plsql等其他数据库连接工具能够连接上服务器的数据库,只是本地项目报错的情况下。
希望对你有帮助!
有技术问题欢迎留言讨论,谢谢!