【问题标题】:ConnectionException connecting a Eve REST API to a MongoDB instanceConnectionException 将 Eve REST API 连接到 MongoDB 实例
【发布时间】:2013-08-29 20:14:53
【问题描述】:

我刚刚安装了“eve demo”,但无法开始工作。

错误是:

eve.io.base.ConnectionException:初始化驱动程序时出错。确保数据库服务器正在运行。驱动异常:OperationFailure(u"command SON([('authenticate', 1), ('user', u'user'), ('nonce', u'cec66353cb35b6f5'), ('key', u'14817e596653376514b76248055e1d4f' )]) 失败:身份验证失败",)

我正在运行 mongoDB,并且我已经安装了 Eve 和 Python2.7。

我创建了所需的run.pysettings.py

什么不工作?我错过了什么吗?

【问题讨论】:

    标签: python api mongodb rest eve


    【解决方案1】:

    您在settings.py 中配置的 MongoDB 用户/密码组合似乎尚未在 db 级别设置。从 mongo shell 输入use <dbname>,然后输入db.system.users.find() 以获取<dbname> 的授权用户列表。它可能是空的;根据需要添加用户(参见MongoDB docs)。

    【讨论】:

      【解决方案2】:
      1. 从setting.py中获取你的mongodb的数据库名、用户名和密码,例如:

        MONGO_USERNAME = 'username'
        
        MONGO_PASSWORD = 'password'
        
        MONGO_DBNAME = 'apitest'
        
      2. 使用 mongo 登录 mongod 服务器,并确保您的用户名在 dbname 的 system.user 集合中。您可以通过以下操作查询该数据库中经过身份验证的用户:

        use apitest
        
        db.system.users.find()
        
      3. 如果 system.users 中不存在用户名,则可以使用 db.addUser 命令将用户添加到 system.users 集合中。例如:

        use apitest
        
        db.addUser{'username','password'}
        

      【讨论】:

      • @FranciscoCorrales 是的,这个问题发生在我身上,我使用上述步骤解决了它。还要感谢 Nicola Iarocci。
      • 很好的答案。只有一个问题。它应该是: db.addUser('username', 'password') ... 使用 {...} 不起作用。
      猜你喜欢
      • 1970-01-01
      • 2020-11-20
      • 1970-01-01
      • 2017-02-20
      • 2013-12-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-01-20
      相关资源
      最近更新 更多