Django Oracle Connection

Я использую 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 ответ

Эта ошибка означает, что не удалось установить TCP-соединение с 127.0.0.1 портом 1521.

Как пользователь root или пользователь, использующий базу данных Oracle, какой адрес отображается для порта LISTENing в выводе команды lsof -Pni: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

Другие вопросы по тегам