使用oracledb连接Python与Oracle时遇连接拒绝问题及咨询
Oracle oracledb 连接问题解决及疑问解答
连接报错与service_name配置说明
- 你遇到的
WinError 10061是目标机器主动拒绝连接,除了service_name错误,也可能是未指定数据库地址/端口、数据库未启动或防火墙拦截,但针对你怀疑的service_name问题:- 需填写数据库服务名,而非TNS服务名。TNS服务名是本地
tnsnames.ora中的别名,service_name是数据库端实际配置的服务标识。 - 格式无需带
local/,直接填写数据库服务名即可。若不确定服务名,可在数据库端执行查询确认:SELECT value FROM v$parameter WHERE name = 'service_names';
- 需填写数据库服务名,而非TNS服务名。TNS服务名是本地
复用JDBC URL连接的方法
- 可以直接在
oracledb.connect()中复用JDBC风格的URL,只需去掉jdbc:oracle:thin:@前缀,将剩余部分作为dsn参数传入。例如你的JDBC URL是"jdbc:oracle:thin:@ldap://ldaptns...",连接代码可改为:import oracledb connection = oracledb.connect(user='user', password='PW', dsn='ldap://ldaptns...') - 也可以直接传入完整的JDBC URL作为
dsn参数,不过去掉前缀是更规范的用法,两种方式通常都能正常工作。
内容的提问来源于stack exchange,提问作者HARRJA
相关产品推荐
相关产品推荐

