MongoのPyMongo接続でAuth認証に失敗した場合の対処法
PyMongo 接続認証失敗(auth failed) の問題に対処するには、以下の手順に従う必要があります。
- MongoDBサーバーで認証が有効化されていることを確認してください。MongoDBはデフォルトでは認証が有効化されていないため、MongoDBサーバーでアクセス制御を構成する必要があります。
- MongoDB サーバーに接続して認証を行うユーザーを作成する。ユーザーは、Mongo シェルで以下のコマンドを使用して作成できる。
db.createUser({
user: "username",
pwd: "password",
roles: [{ role: "readWrite", db: "database_name" }]
})
「username」を目的のユーザー名、「password」を目的のパスワード、「database_name」を接続するデータベース名に置き換えます。必要に応じ、ユーザーに異なるロールと権限を与えることができます。
- PyMongoでMongoDBに接続する際にPythonコードを使用する場合は、前のステップで作成されたユーザー資格情報に対応するユーザー名とパスワードを提供する必要があります。そのためのコード例は次のようになります:
from pymongo import MongoClient
username = "username"
password = "password"
database_name = "database_name"
client = MongoClient("mongodb://{}:{}@localhost:27017/{}".format(username, password, database_name))
db = client[database_name]
「username」を前の手順で作成したユーザー名、 「password」を前の手順で作成したパスワード、「database_name」を前の手順で作成したデータベースの名前に置き換えてください。「localhost:27017」はご自身のMongoDBサーバーのアドレスとポート番号に変更してください。
- Pythonコードを実行すると、MongoDBサーバーに正しく接続して認証することができます。
引き続き接続認証に失敗する場合は、手順1および手順2でMongoDBサーバーのアクセス制御とユーザー資格情報を適切に設定し、手順3でユーザー名、パスワード、データベース名を正しく指定していることを確認してください。