我正试图通过mongoose驱动程序连接到我的mongodb Atlas,它不断抛出MongooseServerSelectionError
,我已经检查了数据库用户的用户名和密码,它是正确的。
这是我的代码:
server running on port 3000
we are connected: { MongooseServerSelectionError: connection timed out
at new MongooseServerSelectionError (/home/ateyib/UCSD-classes/CSE 135/hw3/node_modules/mongoose/lib/error/serverSelection.js:22:11)
at NativeConnection.Connection.openUri (/home/ateyib/UCSD-classes/CSE 135/hw3/node_modules/mongoose/lib/connection.js:808:32)
at Mongoose.connect (/home/ateyib/UCSD-classes/CSE 135/hw3/node_modules/mongoose/lib/index.js:333:15)
at Object.<anonymous> (/home/ateyib/UCSD-classes/CSE 135/hw3/server.js:17:4)
at Module._compile (internal/modules/cjs/loader.js:738:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:749:10)
at Module.load (internal/modules/cjs/loader.js:630:32)
at tryModuleLoad (internal/modules/cjs/loader.js:570:12)
at Function.Module._load (internal/modules/cjs/loader.js:562:3)
at Function.Module.runMain (internal/modules/cjs/loader.js:801:12)
at internal/main/run_main_module.js:21:11
message: 'connection timed out',
name: 'MongooseServerSelectionError',
reason:
TopologyDescription {
type: 'ReplicaSetNoPrimary',
setName: 'Cluster0-shard-0',
maxSetVersion: null,
maxElectionId: null,
servers:
Map {
'cluster0-shard-00-00-ebets.mongodb.net:27017' => [ServerDescription],
'cluster0-shard-00-01-ebets.mongodb.net:27017' => [ServerDescription],
'cluster0-shard-00-02-ebets.mongodb.net:27017' => [ServerDescription] },
stale: false,
compatible: true,
compatibilityError: null,
logicalSessionTimeoutMinutes: 30,
heartbeatFrequencyMS: 10000,
localThresholdMS: 15,
commonWireVersion: 8 },
[Symbol(mongoErrorContextSymbol)]: {} }
这可能与您的ip地址有关。转到Network Access
工具栏选项,单击EDIT按钮,然后单击ADD CURRENT IP ADDRESS并确认。这对我有效。
使用Mongo 3.6和Mongoose 5.9.1连接到不在Atlas上的replicaSet,将useUnifiedTopology设置为true导致了我的问题。将其从我的选项中删除使其起作用。
{ useUnifiedTopology: false }
,或者根本不设置它,让它默认为假
https://github.com/Automattic/mongoose/issues/8180
您可能处于企业防火墙后面
如果您不确定,您可以查看是否可以使用MongoDB文档中的第三方站点访问MongoDB端口(从堆栈中访问27017(,其中有专门针对您遇到的问题的说明。
这也发生在我身上。我重新启动了电脑,然后我的应用程序突然不工作了。。。因此,通过在我的终端中运行以下程序(在我的api/mongoDB文件夹中(来重新启动mongoDB。
brew services stop mongodb-community@5.0
然后运行
brew services start mongodb-community@5.0
我添加了authSource=admin
,它可以
mongodb://127.0.0.1:27017/?authSource=admin
我用了127.0.0.1:27017
而不是localhost
,它可以