org.springframework.jdbc.UncategorizedSQLException: Hibernate operation: Cannot open connection
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: localhost:1521:XE
核心错误 ORA-12505 表明:监听器识别不到连接描述符中指定的 SID (XE)。
# Linux/Unix
lsnrctl status
# Windows 服务面板检查 OracleServiceXE、OracleXETNSListener 服务是否运行
$ORACLE_HOME/network/admin/tnsnames.ora 配置SELECT instance_name FROM v$instance;# listener.ora 关键配置
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = XE) # 必须与连接串一致
(ORACLE_HOME = /path/to/oracle)
)
)
localhost 或实际 IPSID 与 Service Name,JDBC URL 格式不同:
jdbc:oracle:thin:@host:port:SIDjdbc:oracle:thin:@host:port/ServiceName<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" value="oracle.jdbc.OracleDriver" />
<property name="url" value="jdbc:oracle:thin:@localhost:1521:XE" /> <!-- 确认 SID -->
<property name="username" value="your_user" />
<property name="password" value="your_pass" />
</bean>
# 测试网络连通性
tnsping XE
# SQL*Plus 直连测试
sqlplus user/pass@//localhost:1521/XE