我真的不确定为什么我不能使用URI连接字符串从nodejs连接到mongodb数据库。
但是我可以使用mongo shell进行连接。证明:
这是我的连接代码:
MongoClient.connect("mongodb://myusername:[email protected]:43694/node-mongo-blog", {
db: {
w:1,
native_parser:false
},
server: {
poolSize:5,
socketoptions: {connectTimeoutMS: 500},
auto_reconect: true
},
replSet: {},
mongos: {}
}, connectionCallback);
是的,我可以保证我拼写正确,因为我尝试了一百次。我还可以保证代码正确连接,因为它可以与我的本地主机数据库一起使用。我还尝试创建其他用户,但是他们都无法通过URI连接。我正在使用mongodb 4.07。
收到的错误是:
{ [MongoError: auth failed] name: 'MongoError', ok: 0, errmsg: 'auth failed', code: 18 }
有人可以解释一下,因为我不知道为什么它不起作用。
问题是我最近将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。现在,它已更新,一切正常。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句