无法使用URI连接到MongoLab数据库。 shell虽然有效

时间:2015-10-23 05:41:17

标签: node.js mongodb mlab

我真的不确定为什么我无法使用URI连接字符串从nodejs连接到我的mongodb数据库。

然而,我可以使用mongo shell进行连接。证明:

enter image description here

这是我的连接代码:

MongoClient.connect("mongodb://myusername:mypassword@ds043694.mongolab.com:43694/node-mongo-blog", {
    db: {
        w:1,
        native_parser:false
    },
    server: {
        poolSize:5,
        socketoptions: {connectTimeoutMS: 500},
        auto_reconect: true
    },
    replSet: {},
    mongos: {}
}, connectionCallback);

是的,我可以保证我拼写正确的登录,因为我试了一百次。我还可以保证代码正确连接,因为它适用于我的localhost数据库。我也尝试过创建其他用户,但是他们都无法通过URI连接。我正在使用mongodb 4.07。

收到的错误是:

{ [MongoError: auth failed] name: 'MongoError', ok: 0, errmsg: 'auth failed', code: 18 }

有人可以解释一下,因为我不知道它为什么不起作用。

1 个答案:

答案 0 :(得分:4)

问题是我最近将mongodb更新为3.07,但从未考虑过mongodb-native-driver与更新不兼容的事实。

MongoLab发布了一条消息,说明:

If you cannot authenticate to a deployment running MongoDB 3.0, ensure that you are using a 3.0-compatible driver.

他们随后将我发送到此链接:https://docs.mongodb.org/manual/release-notes/3.0-compatibility/#driver-compatibility-changes

我查了nodeJS,发现我需要一些> = v.1.4.29。现在它已经更新,一切正常。