原创

oracle-11g升级19c数据库链接失败

1.背景

比较久远的spring项目,升级Oracle数据库从11g到19c,启动Tomcat失败

2.遇见的问题

2.1 问题:ORA-12505

升级Oracle到19c后,启动Tomcat遇见的第一个问题是ORA-12505

java.sql.SQLException: Listener refused the connection with the following error:
ORA-12505, TNS:listener does not currently know of SID given in connect descriptor
The Connection descriptor used by the client was:
192.168.1.2:1521:ORCL

解决办法:找不到sid,修改数据库连接字符串,冒号改成斜杠

datasource.jdbc.url=jdbc:oracle:thin:@192.168.1.2:1521:ORCL
datasource.jdbc.url=jdbc:oracle:thin:@192.168.1.2:1521/ORCL

参考:https://docs.oracle.com/en/database/oracle/oracle-database/19/jjdbc/data-sources-and-URLs.html#GUID-EF07727C-50AB-4DCE-8EDC-57F0927FF61A

精简式服务名称:jdbc:oracle:thin:HR/hr@//localhost:5221/orcl

参考:https://docs.oracle.com/cd/E11882_01/appdev.112/e12137/getconn.htm#TDPJD138

Oracle 11g连接字符串格式是:jdbc:oracle:thin:hr/hr@localhost:1521:UORCL

2.2 问题:ORA-28040

修改完数据库连接字符串后启动报ORA-28040

ORA-28040: No matching authentication protocol
问题原因:ojdbc版本太低,是用的ojdbc14.jar,匹配jdk1.4版本

解决办法:Oracle19c需要使用ojdbc8.jar,匹配jdk8,改成ojdbc8-19.3.0.0.jar版本后,运行正常

参考:https://docs.oracle.com/en/database/oracle/oracle-database/19/tdpjd/using-java-with-oracle-database.html#GUID-2ADAB75C-88C9-4956-98C3-FE0ED96444CA

正文到此结束