我正在使用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连接到数据库。
答案 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
查看我是如何诊断该特定问题的