连接数据库时报错:ORA-28040:No matching authentication protocol 解决方案_更新版
电脑环境配置:
系统:Windows系统
在cmd输入ipconfig,查看IPv4:172.20.10.5
在cmd输入sqlplus,查看Oracle版本:Release 12.1.0.1.0
tomcat版本:apache-tomcat-8.5.51
JDK版本:JDK 1.8
一款web软件PBOCD部署在tomcat上:apache-tomcat-8.5.51\webapps\PBOCD
错误详情:
启动web软件PBODC,点击apache-tomcat-8.5.51\bin\startup.bat:
连接数据库时报错:ORA-28040:No matching authentication protocol
解决方案:
修改三个地方(也可能不需要全部修改,根据实际情况操作)
1 修改D:\app\xiaotong\product\12.1.0\dbhome_1\NETWORK\ADMIN\sqlnet.ora:
增加下面语句:
#表示支持oracle8版本的连接
SQLNET.ALLOWED_LOGON_VERSION=8
2 从oracle安装路径的lib库里拷贝相应的oracle jdbc驱动jar包到tomcat的lib库
原地址:D:\app\xiaotong\product\12.1.0\dbhome_1\jdbc\lib\ojdbc7.jar
目标地址:apache-tomcat-8.5.51\lib
上网查找适合自己配置的jar包版本,主要参考2个指标:oracle版本和jdk版本,如我的是Oracle 12.1.0.1.0和JDK 1.8,官网推荐使用ojdbc7.jar。
3 检查web软件包的数据库连接是否正确,检查配置文件:apache-tomcat-8.5.51\webapps\PBOCD\WEB-INF\classes\config.properties:
sys.dbType=oracle
sys.driver=oracle.jdbc.driver.OracleDriver
sys.url=jdbc:oracle:thin:@localhost:1521:ups -----------尤其是URL,推荐写localhost,也可以写IPv4地址
sys.username=pbocd
sys.password=pbocd
sys.testSql=SELECT 'x' FROM DUAL
sys.schema=pbocd
重启oracle服务:OracleServiceUPS 和 OracleOraDB12Home1TNSListener
然后重启tomcat,问题即可解决,亲测有效哦~