5

我正在研究 MongoDB 并尝试将 Compass 连接到我本地 PC 上的数据库,但每次在 Compass 上都会收到错误“服务器选择在 10000 毫秒后超时”,

在此处输入图像描述

这是我终端的日志:

    ~$ mongod
2019-09-30T08:51:56.372+0700 I  CONTROL  [main] Automatically disabling TLS 1.0, to force-enable TLS 1.0 specify --sslDisabledProtocols 'none'
2019-09-30T08:51:56.377+0700 I  CONTROL  [initandlisten] MongoDB starting : pid=4661 port=27017 dbpath=/data/db 64-bit host=dell
2019-09-30T08:51:56.377+0700 I  CONTROL  [initandlisten] db version v4.2.0
2019-09-30T08:51:56.377+0700 I  CONTROL  [initandlisten] git version: a4b751dcf51dd249c5865812b390cfd1c0129c30
2019-09-30T08:51:56.377+0700 I  CONTROL  [initandlisten] OpenSSL version: OpenSSL 1.1.1  11 Sep 2018
2019-09-30T08:51:56.377+0700 I  CONTROL  [initandlisten] allocator: tcmalloc
2019-09-30T08:51:56.377+0700 I  CONTROL  [initandlisten] modules: none
2019-09-30T08:51:56.377+0700 I  CONTROL  [initandlisten] build environment:
2019-09-30T08:51:56.377+0700 I  CONTROL  [initandlisten]     distmod: ubuntu1804
2019-09-30T08:51:56.377+0700 I  CONTROL  [initandlisten]     distarch: x86_64
2019-09-30T08:51:56.377+0700 I  CONTROL  [initandlisten]     target_arch: x86_64
2019-09-30T08:51:56.377+0700 I  CONTROL  [initandlisten] options: {}
2019-09-30T08:51:56.377+0700 I  STORAGE  [initandlisten] Detected data files in /data/db created by the 'wiredTiger' storage engine, so setting the active storage engine to 'wiredTiger'.
2019-09-30T08:51:56.377+0700 I  STORAGE  [initandlisten] 
2019-09-30T08:51:56.377+0700 I  STORAGE  [initandlisten] ** WARNING: Using the XFS filesystem is strongly recommended with the WiredTiger storage engine
2019-09-30T08:51:56.377+0700 I  STORAGE  [initandlisten] **          See http://dochub.mongodb.org/core/prodnotes-filesystem
2019-09-30T08:51:56.377+0700 I  STORAGE  [initandlisten] wiredtiger_open config: create,cache_size=3427M,cache_overflow=(file_max=0M),session_max=33000,eviction=(threads_min=4,threads_max=4),config_base=false,statistics=(fast),log=(enabled=true,archive=true,path=journal,compressor=snappy),file_manager=(close_idle_time=100000),statistics_log=(wait=0),verbose=[recovery_progress,checkpoint_progress],
2019-09-30T08:51:57.030+0700 I  STORAGE  [initandlisten] WiredTiger message [1569808317:30575][4661:0x7f5edea92b00], txn-recover: Recovering log 4 through 5
2019-09-30T08:51:57.072+0700 I  STORAGE  [initandlisten] WiredTiger message [1569808317:72698][4661:0x7f5edea92b00], txn-recover: Recovering log 5 through 5
2019-09-30T08:51:57.130+0700 I  STORAGE  [initandlisten] WiredTiger message [1569808317:130714][4661:0x7f5edea92b00], txn-recover: Main recovery loop: starting at 4/6144 to 5/256
2019-09-30T08:51:57.209+0700 I  STORAGE  [initandlisten] WiredTiger message [1569808317:209489][4661:0x7f5edea92b00], txn-recover: Recovering log 4 through 5
2019-09-30T08:51:57.292+0700 I  STORAGE  [initandlisten] WiredTiger message [1569808317:291996][4661:0x7f5edea92b00], txn-recover: Recovering log 5 through 5
2019-09-30T08:51:57.340+0700 I  STORAGE  [initandlisten] WiredTiger message [1569808317:340285][4661:0x7f5edea92b00], txn-recover: Set global recovery timestamp: (0,0)
2019-09-30T08:51:57.597+0700 I  RECOVERY [initandlisten] WiredTiger recoveryTimestamp. Ts: Timestamp(0, 0)
2019-09-30T08:51:57.601+0700 I  STORAGE  [initandlisten] Timestamp monitor starting
2019-09-30T08:51:57.672+0700 I  CONTROL  [initandlisten] 
2019-09-30T08:51:57.672+0700 I  CONTROL  [initandlisten] ** WARNING: Access control is not enabled for the database.
2019-09-30T08:51:57.672+0700 I  CONTROL  [initandlisten] **          Read and write access to data and configuration is unrestricted.
2019-09-30T08:51:57.672+0700 I  CONTROL  [initandlisten] 
2019-09-30T08:51:57.672+0700 I  CONTROL  [initandlisten] ** WARNING: This server is bound to localhost.
2019-09-30T08:51:57.672+0700 I  CONTROL  [initandlisten] **          Remote systems will be unable to connect to this server. 
2019-09-30T08:51:57.672+0700 I  CONTROL  [initandlisten] **          Start the server with --bind_ip <address> to specify which IP 
2019-09-30T08:51:57.672+0700 I  CONTROL  [initandlisten] **          addresses it should serve responses from, or with --bind_ip_all to
2019-09-30T08:51:57.672+0700 I  CONTROL  [initandlisten] **          bind to all interfaces. If this behavior is desired, start the
2019-09-30T08:51:57.672+0700 I  CONTROL  [initandlisten] **          server with --bind_ip 127.0.0.1 to disable this warning.
2019-09-30T08:51:57.672+0700 I  CONTROL  [initandlisten] 
2019-09-30T08:51:57.681+0700 I  SHARDING [initandlisten] Marking collection local.system.replset as collection version: <unsharded>
2019-09-30T08:51:57.681+0700 I  STORAGE  [initandlisten] Flow Control is enabled on this deployment.
2019-09-30T08:51:57.681+0700 I  SHARDING [initandlisten] Marking collection admin.system.roles as collection version: <unsharded>
2019-09-30T08:51:57.681+0700 I  SHARDING [initandlisten] Marking collection admin.system.version as collection version: <unsharded>
2019-09-30T08:51:57.682+0700 I  SHARDING [initandlisten] Marking collection local.startup_log as collection version: <unsharded>
2019-09-30T08:51:57.682+0700 I  FTDC     [initandlisten] Initializing full-time diagnostic data capture with directory '/data/db/diagnostic.data'
2019-09-30T08:51:57.683+0700 I  SHARDING [LogicalSessionCacheRefresh] Marking collection config.system.sessions as collection version: <unsharded>
2019-09-30T08:51:57.684+0700 I  NETWORK  [initandlisten] Listening on /tmp/mongodb-27017.sock
2019-09-30T08:51:57.684+0700 I  NETWORK  [initandlisten] Listening on 127.0.0.1
2019-09-30T08:51:57.684+0700 I  SHARDING [LogicalSessionCacheReap] Marking collection config.transactions as collection version: <unsharded>
2019-09-30T08:51:57.684+0700 I  NETWORK  [initandlisten] waiting for connections on port 27017
2019-09-30T08:56:56.140+0700 I  NETWORK  [listener] connection accepted from 127.0.0.1:59152 #1 (1 connection now open)
2019-09-30T08:56:56.142+0700 I  NETWORK  [conn1] received client metadata from 127.0.0.1:59152 conn1: { driver: { name: "nodejs-core", version: "3.2.7" }, os: { type: "Linux", name: "linux", architecture: "x64", version: "5.0.0-29-generic" }, platform: "Node.js v10.2.0, LE", application: { name: "MongoDB Compass" } }
2019-09-30T08:56:56.143+0700 I  NETWORK  [conn1] end connection 127.0.0.1:59152 (0 connections now open)

实际上我看不到任何其他错误,所以我不知道如何谷歌。

如您所见,mongo 收到来自 compass 的客户端请求,但它立即关闭

2019-09-30T08:51:57.684+0700 I  NETWORK  [initandlisten] Listening on /tmp/mongodb-27017.sock
2019-09-30T08:51:57.684+0700 I  NETWORK  [initandlisten] Listening on 127.0.0.1
2019-09-30T08:51:57.684+0700 I  SHARDING [LogicalSessionCacheReap] Marking collection config.transactions as collection version: <unsharded>
2019-09-30T08:51:57.684+0700 I  NETWORK  [initandlisten] waiting for connections on port 27017
2019-09-30T08:56:56.140+0700 I  NETWORK  [listener] connection accepted from 127.0.0.1:59152 #1 (1 connection now open)
2019-09-30T08:56:56.142+0700 I  NETWORK  [conn1] received client metadata from 127.0.0.1:59152 conn1: { driver: { name: "nodejs-core", version: "3.2.7" }, os: { type: "Linux", name: "linux", architecture: "x64", version: "5.0.0-29-generic" }, platform: "Node.js v10.2.0, LE", application: { name: "MongoDB Compass" } }
2019-09-30T08:56:56.143+0700 I  NETWORK  [conn1] end connection 127.0.0.1:59152 (0 connections now open)
=

Compass 和 MongoDB 都在同一台机器上运行,该机器在 Ubuntu 18.04 上运行

这是我运行“mongo”命令的另一个终端

~$ mongo
MongoDB shell version v4.2.0
connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("c60d27ad-75d1-4a8c-83c8-6bb5482fd745") }
MongoDB server version: 4.2.0
Server has startup warnings: 
2019-09-30T08:51:56.377+0700 I  STORAGE  [initandlisten] 
2019-09-30T08:51:56.377+0700 I  STORAGE  [initandlisten] ** WARNING: Using the XFS filesystem is strongly recommended with the WiredTiger storage engine
2019-09-30T08:51:56.377+0700 I  STORAGE  [initandlisten] **          See http://dochub.mongodb.org/core/prodnotes-filesystem
2019-09-30T08:51:57.672+0700 I  CONTROL  [initandlisten] 
2019-09-30T08:51:57.672+0700 I  CONTROL  [initandlisten] ** WARNING: Access control is not enabled for the database.
2019-09-30T08:51:57.672+0700 I  CONTROL  [initandlisten] **          Read and write access to data and configuration is unrestricted.
2019-09-30T08:51:57.672+0700 I  CONTROL  [initandlisten] 
2019-09-30T08:51:57.672+0700 I  CONTROL  [initandlisten] ** WARNING: This server is bound to localhost.
2019-09-30T08:51:57.672+0700 I  CONTROL  [initandlisten] **          Remote systems will be unable to connect to this server. 
2019-09-30T08:51:57.672+0700 I  CONTROL  [initandlisten] **          Start the server with --bind_ip <address> to specify which IP 
2019-09-30T08:51:57.672+0700 I  CONTROL  [initandlisten] **          addresses it should serve responses from, or with --bind_ip_all to
2019-09-30T08:51:57.672+0700 I  CONTROL  [initandlisten] **          bind to all interfaces. If this behavior is desired, start the
2019-09-30T08:51:57.672+0700 I  CONTROL  [initandlisten] **          server with --bind_ip 127.0.0.1 to disable this warning.
2019-09-30T08:51:57.672+0700 I  CONTROL  [initandlisten] 
---
Enable MongoDB's free cloud-based monitoring service, which will then receive and display
metrics about your deployment (disk utilization, CPU, operation statistics, etc).

The monitoring data will be available on a MongoDB website with a unique URL accessible to you
and anyone you share the URL with. MongoDB may use this information to make product
improvements and to suggest MongoDB products and deployment options to you.

To enable free monitoring, run the following command: db.enableFreeMonitoring()
To permanently disable this reminder, run the following command: db.disableFreeMonitoring()
---

> 

谢谢阅读,

4

6 回答 6

7

看起来我必须输入 127.0.0.1 而不是保持默认并且一切正常,

在此处输入图像描述

更新:当我连接到本地主机上的数据库时,连接速度很慢,我终于知道在这种情况下发生了什么,

如果我们让主机名是localhost,连接需要很长时间(超过10s),这就是为什么它会导致连接超时

我们必须更改本地主机127.0.0.1,它会像风一样快。

如果您让 Node.js 中的连接字符串127.0.0.1代替localhost

前:

The server is running in port 6969 !
DB connection succesful! 10046.88992600143 ms

后:

The server is running in port 6969!
DB connection succesful! 43.67024099826813 ms

您可以在这里获得更多信息:https ://github.com/Automattic/mongoose/issues/6211

Mongoose 文档也谈到了这一点:

如果在您的计算机上连接失败,请尝试使用 127.0.0.1 而不是 localhost。 https://mongoosejs.com/docs/connections.html

于 2019-09-30T14:09:57.180 回答
2

有一个简单的解决方案...首先转到您的任务管理器应用程序,如果您找不到它,只需在搜索栏上搜索任务管理器...然后转到任务管理器工具栏顶部的服务然后向下滚动并查找 mongodb ...现在右键单击 mongodb 并单击 start ..

于 2020-04-11T10:30:39.590 回答
1

我有一个类似的问题...

但事实证明我不允许我的系统 IP 地址访问数据库或更确切地说是集群。

可以通过导航到网络访问来访问:

在此处输入图像描述

于 2020-03-21T20:27:13.077 回答
0

我遇到了同样的问题,但做了一些研究,我发现连接字符串想要的是您的用户密码,而不是您的帐户密码。这就是我解决这个错误的方法。

于 2020-01-19T00:06:13.240 回答
0

我正在使用 NetLimiter 来控制我的互联网速度。毫无疑问,我卸载了它。问题消失了。我不知道原因

于 2020-04-14T05:13:20.347 回答
0

就我而言,我必须完全卸载 MongoDB Compass 并安装最新的稳定版本。删除了我的用户并重新创建了他们。最后,我在网络设置中添加了白名单的 IP 地址。只有在完成所有这些之后,指南针才能连接。

于 2020-10-20T02:02:28.810 回答