“DPY-6005:无法连接到数据库”是什么意思。连接失败,并显示“[Errno 61] 连接被拒绝”' 意味着 python-oracledb

问题描述 投票:0回答:3

在装有 Python 3.9.6 的 macOS 上,使用 Oracle 的 python-oracledb 驱动程序的 Python 代码:

import oracledb
import os

un = os.environ.get("PYTHON_USERNAME")
pw = os.environ.get("PYTHON_PASSWORD")
cs = "localhost/orclpdb1"

c = oracledb.connect(user=un, password=pw, dsn=cs)

给出错误:

DPY-6005: cannot connect to database. Connection failed with "[Errno 61] Connection refused"

在 Linux 上,错误如下:

DPY-6005: cannot connect to database. Connection failed with "[Errno 111] Connection refused"

这些是什么意思?

[更新:在 python-oracledb 1.0.1 中,错误被 DPY-6005 包装。在 1.0.0 中,仅显示了错误的较低级别的 Python 部分。]

python oracle python-oracledb
3个回答
2
投票
  • 一种情况是您使用的数据库端口(或默认端口1521)是 不正确。找到正确的端口并使用它。例如,如果您的 数据库侦听器正在侦听端口 1530 而不是默认端口 1521,那么您可以尝试连接字符串:

    cs = "localhost:1530/orclpdb1"
    
  • 确保主机名正确:您可能连接到了错误的机器。


0
投票

根据我的经验,“连接被拒绝”通常意味着连接被“主动”拒绝,这可能意味着数据库受到防火墙的保护。如果您已经确认主机名和端口正确,但仍然收到此错误,请确定数据库服务器本身或网络上其他位置是否存在防火墙,并创建一条规则以允许访问或完全禁用它(假设这样做是安全的)。


0
投票

© www.soinside.com 2019 - 2024. All rights reserved.