1

我正在使用 Oracle 11g 和 Django 1.5.1。我已经安装了 cx_Oracle,导入 cx_Oracle 工作正常。我像这样设置数据库设置:

DATABASES = {
    'default' : {
        'ENGINE' : 'django.db.backends.oracle',
        'NAME' : 'XE',
        'USER' : 'system',
        'PASSWORD' : 'mypass',
        'HOST' : '127.0.0.1'
        'PORT' : '1521'
    }
}

当我说

python manage.py syncdb

它说

DatabaseError: ORA-12170: TNS:Connection timeout occurred.

我可以使用 Navicat 连接到数据库。

4

1 回答 1

0

此错误表示与 127.0.0.1 端口 1521 建立 tcp 连接失败

作为 root 或运行 Oracle 数据库的用户,在 lsof -Pni:1521 的输出中显示 LISTENing 端口的地址

如果不是 127.0.0.1:1521 或 *:1521,则不会在 127.0.0.1 上监听

然而。这是连接超时,而不是端口不可达(连接被拒绝)

你没有说你是在同一台机器上还是在不同的机器上运行navicat。如果上面的命令仅显示 127.0.0.1:1521,那么它只是在侦听该 IP 地址,并且需要更改以允许来自其他计算机的连接,如果这是您想要实现的。

检查可能阻止流量的防火墙规则。

如果尝试远程连接,则进行网络跟踪有助于确定问题。我最近遇到了一个类似的问题,导致 ARP 出现故障。您可以在http://distracted-it.blogspot.co.nz/2014/04/ora-12170-tnsconnect-timeout-resolved.html看到我是如何诊断出这个特定问题的

于 2014-04-26T10:44:20.063 回答