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 に答える