私は、読み取り専用モードで動作する Django (mongoengine を使用) Web サイトと、その MongoDB (Django によって読み取られる) にデータを入力するオフライン python アプリを持っています。いくつかのロックの問題に直面して、セカンダリ インスタンスを Web サイト DB にできるので、レプリカセットが改善されることを発見しました。
最初に、セカンダリ インスタンス ホストへの接続を変更したところ、次のエラーが発生しました。
Request Method: GET
Request URL: http://localhost:8000/awesomeApp/
Django Version: 1.5
Exception Type: AutoReconnect
Exception Value:
not master
その後、登録された接続で解決しようとしましたが、成功せず、後で接続できるmongoengine 0.8.7にアップグレードしました:
connect('awesomeApp', host='mongodb://rs63804-a0.mongoserviceprovider.com:27017,rs63804-a1.mongoserviceprovider.com:27017', replicaSet='rs63804', read_preference=ReadPreference.SECONDARY_PREFERRED, username='scott', password='tiger')
しかし、ReadPreference.PRIMARY_PREFERRED または ReadPreference.SECONDARY_PREFERRED を使用すると、2 つの異なるエラー メッセージが表示されるようになりました...
PRIMARY_PREFERRED を使用すると、以下が返されます。
Request Method: GET
Request URL: http://localhost:8000/awesomeapp/
Django Version: 1.5
Exception Type: OperationFailure
Exception Value:
not authorized to create index on awesomeapp.django_session
SECONDARY_PREFERRED を使用すると、次のようになります。
Request Method: GET
Request URL: http://localhost:8000/awesomeapp/
Django Version: 1.5
Exception Type: OperationFailure
Exception Value:
database error: not authorized for query on awesomeapp.django_session
私はこのステップで立ち往生しており、mongoengine および/または mongodb 構成を介してその操作を許可する方法を探していますが、まだ解決策を見つけることができませんでした..何かアイデアはありますか?
前もって感謝します