Oracle Cloud ADB Graph两层架构Python连接失败求助
如何通过两层架构用Python连接Oracle ADB Graph?
你遇到的连接错误核心原因是JDBC URL格式不符合Oracle Autonomous Database(ADB)的两层连接规范,同时原代码中直接引用Wallet压缩包而非解压后的目录,路径转义也存在问题。以下是正确的连接方案:
正确连接方式示例
方式1:依赖TNS配置文件(推荐)
先将下载的Wallet_ADW21.zip解压到C:\etc_ADW21目录,然后使用TNS别名连接:
import opg4py.pgql as pgql # 替换为你的实际密码 pgql_conn = pgql.get_connection( "graphuser", "your_password_here", "jdbc:oracle:thin:@adw21c_medium?TNS_ADMIN=C:\\etc_ADW21" )
方式2:使用完整连接描述符(无需TNS文件)
直接在JDBC URL中写入完整的连接串,无需依赖Wallet目录下的TNS文件:
import opg4py.pgql as pgql pgql_conn = pgql.get_connection( "graphuser", "your_password_here", "jdbc:oracle:thin:@(description= (retry_count=20)(retry_delay=3)(address=(protocol=tcps)(port=1522)(host=adb.eu-frankfurt-1.oraclecloud.com))(connect_data=(service_name=adw21c_medium))(security=(ssl_server_dn_match=yes)))" )
关键注意事项
- 路径处理:Windows系统下路径必须用双反斜杠
\\或正斜杠/,避免单个反斜杠被识别为转义字符。 - Wallet使用:必须解压Wallet压缩包,
TNS_ADMIN指向的是解压后的目录,而非压缩包本身。 - 服务名验证:确认
adw21c_medium是ADB控制台中显示的正确服务名(通常包含_low、_medium、_high后缀)。 - 协议要求:ADB两层连接必须使用TCPS协议,不能用普通TCP,这也是原
host:port:sid格式无效的核心原因。
内容的提问来源于stack exchange,提问作者fmatz
相关产品推荐
相关产品推荐

