Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

MongoEngine - Another user is already authenticated to this database. You must logout first

Can anyone please explain why I am getting error Another user is already authenticated to this database. You must logout first when connecting to MongoDB using Flask MongoEngine?

from mongoengine.connection import get_db
from flask import Flask, jsonify, abort
from flask_cors import CORS
from flask_mongoengine import MongoEngine
from flask_restful import Api

def init_db():
    return MongoEngine()

app = Flask(__name__)
CORS(app)
api = Api(app)
app.config.from_object('conf.settings')
db = init_db()
db.init_app(app)

@app.route('/health_check')
def on_health_check():
    try:
        db = get_db()
        db.command('dbstats')

        return jsonify(
            status=200
        )
    except Exception as e:
        logging.exception('on_health_check() exception -> {}'.format(str(e)))
        abort(500, 'Could not connect to database')


app.run(host='0.0.0.0', port=5000, debug=True, threaded=True)

conf/settings.py:

MONGODB_SETTINGS = {
    'host': 'mongodb://username:[email protected]:27017,mongo-rep-mongodb-replicaset-1.local:27017/db_name?replicaSet=whatever'
}

When I go to http://localhost:5000/health_check, it always throws the Exception with message as I described above.

like image 725
Thanh Nguyen Avatar asked Jul 07 '18 05:07

Thanh Nguyen


1 Answers

So I was running into the same issue today, but ended up resolving it by installing a previous version of pymongo, e.g. pip install pymongo==3.4.0 instead of the latest version 3.7.0. There might be a bug...

like image 121
Alex Xu Avatar answered Sep 29 '22 09:09

Alex Xu