ORA-28040
一个简简单单的问题,就是因为oracle版本与jdbc驱动不适配,故而报错。
解决的方案也是百度一下,你就得到很多:
都是修改 $ORACLE_HOME\NETWORK\ADMIN\sqlnet.ora 文件
如果ORACLE版本是12c 1.0… 增加一行配置如下
SQLNET.ALLOWED_LOGON_VERSION=8
如果ORACLE版本是12c 2.0… 增加两行配置如下
SQLNET.ALLOWED_LOGON_SERVER=8
SQLNET.ALLOWED_LOGON_CLIENT=8
但是这种方式需要重启ORACLE的监听,这在生产环境中,尤其是已经存在业务发生的前提下,谁也不敢直接就重启数据库的。这样就没办法采用上述方式,只能从根本解决问题。
深思中…
ORA-28040: No matching authentication protocol
这个错误本身就是因为数据库升级而对于驱动包没有升级
上面的图片也是很清晰的显示了,其实只需要将对应JDK允许的,并且符合Oracle版本的驱动就可以了。
但但但但是!
需要注意的是,添加了一个驱动之后,需要把之前的驱动全部删掉。不然他可能还是找的之前版本的驱动。一直报错。
总结
上线前一定要找个空的环境,确认好Oracle版本、JDK版本、驱动版本,完备无误后,再上线。