Django Oracle Connection

时间:2013-06-26 08:46:31

标签: django database oracle ora-12170

我正在使用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连接到数据库。

1 个答案:

答案 0 :(得分:0)

此错误表示它与127.0.0.1端口1521

建立TCP连接失败

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

如果不是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

查看我是如何诊断该特定问题的