python - 'DPY-6005: cannot connect to database. Connection failed with "[Errno 61] 连接被拒绝"' 对于 python-oracledb 意味着什么

标签 python oracle python-oracledb

在装有 Python 3.9.6 的 macOS 上,使用 Oracle 的 python-oracledb driver 的 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 部分。]

最佳答案

  • 一种情况是您使用的数据库端口(或默认端口 1521)是 不正确。找到正确的端口并使用它。例如,如果您的 数据库监听器正在监听端口 1530 而不是默认端口 1521,那么您可以尝试连接字符串:

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

关于python - 'DPY-6005: cannot connect to database. Connection failed with "[Errno 61] 连接被拒绝"' 对于 python-oracledb 意味着什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72385533/

相关文章:

python - 使用图像和标签的数据帧创建 Tensorflow 数据集

python - 如何从与静态路径不同的目录提供静态文件?

python - 将列表保存到 .txt 文件

python - new.instancemethod 在重载脚本中转换为 python 3.3

.net - 将 .NET DateTime 转换为 OracleDate

sql - Oracle:返回仅包含数字值的行的 SQL 查询

linux - 如何在 Linux 上重新配置 Oracle 10g xe

python - 为什么在 oracledb/cx_Oracle (Python) 中不调用输出转换器进行字节转换?