【问题标题】:Can't connect to MongoLab database with URI. The shell works though无法使用 URI 连接到 MongoLab 数据库。外壳虽然有效
【发布时间】:2016-01-22 14:09:09
【问题描述】:

我真的不知道为什么我不能使用 URI 连接字符串从 nodejs 连接到我的 mongodb 数据库。

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

这是我的连接代码:

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 }

谁能解释一下,因为我不知道为什么它不起作用。

【问题讨论】:

  • 哦,是的,我还尝试将connectTimeoutMS 编辑为一个非常高的数字。

标签: node.js mongodb mlab


【解决方案1】:

问题是我最近将 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。现在它已更新,一切正常。

【讨论】:

    猜你喜欢
    • 2016-01-25
    • 2018-01-07
    • 1970-01-01
    • 1970-01-01
    • 2016-04-08
    • 2011-07-09
    • 1970-01-01
    • 1970-01-01
    • 2011-10-30
    相关资源
    最近更新 更多