仅在远程计算机上使用MongoDB客户端进行神秘的auth故障

时间:2016-10-09 04:43:47

标签: mongodb

我可以在db服务器上本地使用mongo客户端正常连接和验证。我不能远程。我可以从远程主机连接,但db.auth总是失败并且使用在本地工作的正确凭据,并且还使用pymongo客户端远程工作。所以这有效:

> python
> import pymongo, config
> pymong.MongoClient(host=config.database_host)['live'].collection_names()

但事实并非如此!

> mongo db.example.com/live
> db.auth('live', 'secret')
0
>

然而,从db服务器本地,完全相同的东西确实有效,所以我确定我使用正确的语法和凭据:-(。这可能会发生什么?在服务器日志中,我看到:

2016-10-09T04:44:21.368+0000 I ACCESS   [conn22763]  authenticate db: live { authenticate: 1, nonce: "xxx", user: "live", key: "xxx" }
2016-10-09T04:44:21.368+0000 I ACCESS   [conn22763] Failed to authenticate live@live with mechanism MONGODB-CR: AuthenticationFailed: MONGODB-CR credentials missing in the user document

也许这是客户端版本问题?

1 个答案:

答案 0 :(得分:0)

我已经在原帖中回答了这个问题。这是mongo客户端和服务器之间的简单主要版本号不匹配。这花了我很多时间才弄明白,因为错误是完全错误的,更不用说甚至没有从我尝试的客户端报告,所以不得不将其从服务器日志中挖掘出来。