208

我来自 riak 和 redis,我从来没有遇到过启动此服务或交互的问题。

这是 mongo 普遍存在的问题,我相当无能。重新启动没有帮助。我是 mongo 的新手。

mongo
MongoDB shell version: 2.2.1
connecting to: test
Fri Nov  9 16:44:06 Error: couldn't connect to server 127.0.0.1:27017 src/mongo/shell/mongo.js:91
exception: connect failed

这是我在日志中看到的。

 now open)
Fri Nov  9 16:44:34 [conn47] end connection 10.29.16.208:5306 (1 connection now open)
Fri Nov  9 16:45:04 [initandlisten] connection accepted from 10.29.16.208:5307 #48 (2 connections now open)
Fri Nov  9 16:45:04 [conn48] end connection 10.29.16.208:5307 (1 connection now open)
Fri Nov  9 16:45:04 [initandlisten] connection accepted from 10.29.16.208:5308 #49 (2 connections now open)
Fri Nov  9 16:45:04 [conn49] end connection 10.29.16.208:5308 (1 connection now open)
Fri Nov  9 16:45:34 [initandlisten] connection accepted from 10.29.16.208:5316 #50 (2 connections now open)
Fri Nov  9 16:45:34 [conn50] end connection 10.29.16.208:5316 (1 connection now open)
Fri Nov  9 16:45:34 [initandlisten] connection accepted from 10.29.16.208:5317 #51 (2 connections now open)
Fri Nov  9 16:45:34 [conn51] end connection 10.29.16.208:5317 (1 connection now open)
Fri Nov  9 16:46:04 [initandlisten] connection accepted from 10.29.16.208:5320 #52 (2 connections now open)
Fri Nov  9 16:46:04 [conn52] end connection 10.29.16.208:5320 (1 connection now open)
Fri Nov  9 16:46:04 [initandlisten] connection accepted from 10.29.16.208:5321 #53 (2 connections now open)
Fri Nov  9 16:46:04 [conn53] end connection 10.29.16.208:5321 (1 conn
4

45 回答 45

313

通常这是因为您在尝试启动 mongo shell 之前没有启动 mongod 进程。

启动mongod服务器

mongod

打开另一个终端窗口

启动 mongo shell

mongo
于 2013-06-12T17:40:22.103 回答
97

解决。

这个问题可以通过下面提到的4个步骤来解决

1) 删除 .lock 文件

sudo rm /var/lib/mongodb/mongod.lock 

2)修复mongodb

mongod -–repair

3)启动mongod服务器

sudo service mongod start 

4)启动mongo客户端

mongo

有关更多详细信息,请查看http://shakthydoss.com/error-couldnt-connect-to-server-127-0-0-127017-srcmongoshellmongo-js-exception-connect-failed/

http://shakthydoss.com/technical/error-couldnt-connect-to-server-127-0-0-127017-srcmongoshellmongo-js-exception-connect-failed/

于 2013-03-09T11:22:39.767 回答
56

如果 mongo shell 无法与 mongod 服务器通信,您会看到此错误。

这可能是因为地址错误(主机或 IP)或者它没有运行。需要注意的一点是,提供的日志跟踪不涵盖您的mongo timestamp.

你可以吗:

  1. 提供用于启动 mongod 进程的命令行参数(如果有)
  2. 提供 mongod 启动的日志文件活动以及 mongo shell 启动尝试期间的日志?
  3. 确认您的 mongod 进程与 mongo shell 在同一台机器上启动?
于 2012-11-09T22:24:20.237 回答
56

此方法仅在您想修复数据文件而不保留原始文件时才有效

要找到您的 dbpath 所在的位置 - vim /etc/mongodb.conf

检查选项dbpath=

(我有 dbpath=/var/lib/mongodb)

默认值: /data/db/

典型位置包括:/srv/mongodb、/var/lib/mongodb 或 /opt/mongodb。

/var/lib/mongodb替换为您的dbpath

sudo rm /var/lib/mongodb/mongod.lock
sudo mongod --dbpath /var/lib/mongodb/ --repair
sudo mongod --dbpath /var/lib/mongodb/ --journal

(确保让您在上面运行的终端保持运行,不要按“Ctrl+c”或退出它。)现在在另一个窗口中键入命令以启动 mongo。

希望这对你有用!对于那些想要在保留原始文件的同时修复数据文件的人 mongo recover

于 2013-05-04T07:39:24.483 回答
45

我是 Windows 用户,我在 2018 年 11 月安装了 MongoDB,我不想设置 data/db 目录。但是几天后,当我打开时,收到一条错误消息:

MongoDB shell version v4.0.4
connecting to: mongodb://127.0.0.1:27017
2018-12-05T20:42:40.108+0530 E QUERY    [js] Error: couldn't connect to server 127.0.0.1:27017, connection attempt failed: SocketException: Error connecting to 127.0.0.1:27017 :: caused by :: No connection could be made because the target machine actively refused it. :
connect@src/mongo/shell/mongo.js:257:13
@(connect):1:6
exception: connect failed

然后我尝试使用上述所有答案进行修复,但没有成功。当我尝试运行 mongod 它说

MongoDB starting : pid=12220 port=27017 dbpath=C:\data\db\ 64-bit host=bla

我尝试通过文件系统更改数据库路径(到程序文件)并使用 cmd 但这些都不起作用。

对我有用的解决方案是:

打开任务管理器( ctrl + shift + esc) ->服务选项卡,有一个状态为停止的MongoDB 行。然后我右键单击并单击开始,一切正常:)

于 2018-12-05T15:22:01.280 回答
40

苹果系统

检查状态

brew services list

就像是:

Name    Status  User Plist
mongodb stopped  

启动它

brew services start mongodb

再试一次

mongo或者mongo --port 27017

于 2019-03-01T05:26:12.080 回答
20

Error: couldn't connect to server 127.0.0.1:27017, connection attempt failed: SocketException: Error connecting to 127.0.0.1:27017 :: caused by :: No connection could be made because the target machine actively refused it.

此错误是由于 Mongo Server 已关闭引起的

简单按照以下步骤

  1. 打开任务管理器
  2. 转到>服务
  3. 查找MongoDB
  4. 右键单击并选择开始
于 2020-07-05T10:44:54.713 回答
17

答案有点晚了,但我遇到了同样的问题

以下是帮助我的步骤。

  1. 转到 C:\
  2. 创建“数据”文件夹
  3. 在“数据”中创建“db”文件夹
  4. 打开终端 (CMD) -> 转到 EX:" c:\MongoDB\Server\3.4\bin"
  5. 输入 mongod => 这将启动 mongo 服务器(保持打开状态)

使用 GUI 运行,EX“robomongo”

或者

打开新终端 (CMD) -> 转到 EX:" c:\MongoDB\Server\3.4\bin" 输入 "mongo" 命令

于 2017-11-08T11:34:36.903 回答
16

就我而言:

首先我打开配置文件

sudo vi /etc/mongodb.conf

像这样评论IP和端口

#bind_ip = 127.0.0.1
#port = 27017

然后重启mongodb

sudo service mongodb restart
sudo service mongod restart

最后,它的工作:D

finn@Finn ~ $ mongo
MongoDB shell version: 2.4.9
connecting to: test
> exit
于 2016-01-12T16:10:47.263 回答
16

确保您的 mongo 正在运行。我通过尝试修复 mongodb 解决了这个问题,在那里我发现没有创建 db 运行所需的目录。它显示了这个错误

类型:mongod,它将显示错误

exception in initAndListen: 29 Data directory /data/db not found., terminating

发生错误是因为 dbpath /data/db/(默认配置)不存在。您需要创建数据文件夹并为其设置权限。

然后我通过命令在我的系统上创建一个文件夹

sudo mkdir -p /data/db/sudo chown id -u/data/db

然后我再次运行 mongo 并且它起作用了。

于 2016-05-08T03:28:48.100 回答
12

经过大量搜索后,我遇到了同样的问题,我通过以下方式解决了这个问题:

sudo service mongodb stop 

sudo rm /var/lib/mongodb/mongod.lock 

sudo mongod --repair --dbpath /var/lib/mongodb 

sudo mongod --fork --logpath /var/lib/mongodb/mongodb.log --dbpath /var/lib/mongodb 

sudo service mongodb start
于 2020-01-02T10:57:51.697 回答
6

如果上述所有解决方案都不起作用:转到服务(start>search>services)并启动 mongodb 服务。然后,在 cmd 提示符下,进入 bin 后,键入:/>mongo

于 2014-07-20T07:46:49.457 回答
6

我也有同样的问题,然后我被这两行代码解决了。希望能帮助到你

systemctl start mongod
systemctl enable mongod
于 2018-07-03T02:52:07.727 回答
4

要与 mongo 连接,我们必须首先启动“mongod”服务。您可以看到以下输出:

$ mongod
2017-03-05T00:31:39.055+0530 I CONTROL  [initandlisten] MongoDB starting : pid=1481 port=27017 dbpath=/data/db 64-bit host=Prabhu-Nandans-Mac.local
2017-03-05T00:31:39.056+0530 I CONTROL  [initandlisten] db version v3.4.2
2017-03-05T00:31:39.056+0530 I CONTROL  [initandlisten] git version: 3f76e40c105fc223b3e5aac3e20dcd026b83b38b
2017-03-05T00:31:39.056+0530 I CONTROL  [initandlisten] OpenSSL version: OpenSSL 1.0.2k  26 Jan 2017
2017-03-05T00:31:39.056+0530 I CONTROL  [initandlisten] allocator: system
2017-03-05T00:31:39.056+0530 I CONTROL  [initandlisten] modules: none
2017-03-05T00:31:39.056+0530 I CONTROL  [initandlisten] build environment:
2017-03-05T00:31:39.056+0530 I CONTROL  [initandlisten]     distarch: x86_64
2017-03-05T00:31:39.056+0530 I CONTROL  [initandlisten]     target_arch: x86_64
2017-03-05T00:31:39.056+0530 I CONTROL  [initandlisten] options: {}
2017-03-05T00:31:39.056+0530 W -        [initandlisten] Detected unclean shutdown - /data/db/mongod.lock is not empty.
2017-03-05T00:31:39.057+0530 I -        [initandlisten] Detected data files in /data/db created by the 'wiredTiger' storage engine, so setting the active storage engine to 'wiredTiger'.
2017-03-05T00:31:39.057+0530 W STORAGE  [initandlisten] Recovering data from the last clean checkpoint.
2017-03-05T00:31:39.057+0530 I STORAGE  [initandlisten] wiredtiger_open config: create,cache_size=3584M,session_max=20000,eviction=(threads_max=4),config_base=false,statistics=(fast),log=(enabled=true,archive=true,path=journal,compressor=snappy),file_manager=(close_idle_time=100000),checkpoint=(wait=60,log_size=2GB),statistics_log=(wait=0),
2017-03-05T00:31:39.620+0530 I CONTROL  [initandlisten] 
2017-03-05T00:31:39.620+0530 I CONTROL  [initandlisten] ** WARNING: Access control is not enabled for the database.
2017-03-05T00:31:39.620+0530 I CONTROL  [initandlisten] **          Read and write access to data and configuration is unrestricted.
2017-03-05T00:31:39.620+0530 I CONTROL  [initandlisten] 
2017-03-05T00:31:39.620+0530 I CONTROL  [initandlisten] 
2017-03-05T00:31:39.620+0530 I CONTROL  [initandlisten] ** WARNING: soft rlimits too low. Number of files is 256, should be at least 1000
2017-03-05T00:31:39.643+0530 I FTDC     [initandlisten] Initializing full-time diagnostic data capture with directory '/data/db/diagnostic.data'
2017-03-05T00:31:39.643+0530 I NETWORK  [thread1] waiting for connections on port 27017
2017-03-05T00:31:40.008+0530 I FTDC     [ftdc] Unclean full-time diagnostic data capture shutdown detected, found interim file, some metrics may have been lost. OK
2017-03-05T00:32:03.832+0530 I NETWORK  [thread1] connection accepted from 127.0.0.1:49806 #1 (1 connection now open)
2017-03-05T00:32:03.833+0530 I NETWORK  [conn1] received client metadata from 127.0.0.1:49806 conn1: { application: { name: "MongoDB Shell" }, driver: { name: "MongoDB Internal Client", version: "3.4.2" }, os: { type: "Darwin", name: "Mac OS X", architecture: "x86_64", version: "16.4.0" } }
2017-03-05T00:32:08.376+0530 I -        [conn1] end connection 127.0.0.1:49806 (1 connection now open)

之后打开另一个终端并输入“mongo”。

以下是您可以看到的输出:

$ mongo
MongoDB shell version v3.4.2
connecting to: mongodb://127.0.0.1:27017
MongoDB server version: 3.4.2

你的问题解决了:)

于 2017-03-04T19:20:12.610 回答
4

使用启动monogdb服务

sudo service mongod start 

然后从新窗口或终端使用 mongo 客户端启动

mongo
于 2019-12-30T07:30:51.520 回答
3

今天发生在我身上,我通过以下方式解决了它。

机器:我使用的是 Windows 10 机器并下载了最新的 MongoDB - 社区版。

所以,问题是,我没有C:\data\db创造。

没有创建C:\data\db,我打开 CMD 终端并mongod在终端使用命令启动数据库

C:\YourInstallationPath\bin>mongod

当我触发mongo命令时,我遇到了问题。

扭曲,我创建了必要的文件夹,但仍然遇到问题。这是因为 mongo 服务器已经在运行。为了修复它,我mongod再次启动了命令,它自动引用了C:\data\db.

其他用户建议添加C:\data\db但没有谈论mongod再次执行,这正好解决了我的问题。

于 2018-05-25T08:13:23.150 回答
3

在 macOS 上使用 brew 安装后,我在连接 mongodb 时遇到了同样的问题。

问题也是mongod.lock,但在我安装 mongodb 3.6 和数据库目录之前/usr/local/var/mongodb,它有旧文件和mongod.lock

很简单,我将旧数据库文件移动到不同的文件夹并从中删除了所有内容/usr/local/var/mongodb

然后重新启动:

brew services restart mongodb

它现在工作正常。

于 2019-05-08T03:34:42.200 回答
3

我在 ubuntu 上收到此错误,但您可以尝试使用以下命令:

sudo service mongod start
于 2019-09-10T09:38:42.217 回答
3

在用尽了很多很多的抱怨之后,我做到了——

sudo brew services start mongodb-community而不是 sudo service mongod start它起作用了。

所以,首先尝试

sudo brew services start mongodb-community

然后启动 mongo shell,做-

mongo
于 2021-01-27T09:49:01.413 回答
2

您可以尝试使用以下命令:

sudo service mongod start

于 2018-05-23T06:23:31.967 回答
2

在 Windows 和 ubuntu 中,我需要/data/db在根目录中创建文件夹。在 ubuntu 中,我需要一个额外的选项;授予目录权限。

视窗

mkdir c:/data/db

Ubuntu:

sudo mkdir -p /data/db
sudo chmod 700 /data/db

然后运行

sudo service mongod start

查看

sudo service mongod status

然后运行

mongo
于 2019-07-12T14:24:12.210 回答
2

对于 MACOS

检查服务状态:

brew services

如果你有类似的东西:

Name              Status
mongodb-community error

因此,您可以像这样停止并重新启动服务:

brew services stop mongodb-community
brew services start mongodb-community
于 2021-10-12T17:49:46.537 回答
1

删除 mongod.lock 文件。并运行“mongod -repair”。卸载/重新安装 mongod 服务为我解决了这个问题。

谢谢。

于 2013-08-06T10:42:03.480 回答
1

另一种解决方案为我解决了同样的错误,尽管这可能仅适用于您通过虚拟机的 SSH 连接(本地)访问 mongo(至少这是我的设置),并且可能是特定于 linux 的环境变量问题:

export LC_ALL=C

此外,我在运行 mongo 作为守护程序服务方面取得了更大的成功,然后使用 sudo service start,我的理解是这使用命令行参数而不是配置文件,所以它可能是我的配置文件的问题:

mongod --fork --logpath /var/log/mongodb.log --auth --port 27017 --dbpath /var/lib/mongodb/admin
于 2016-02-18T11:52:17.763 回答
1

如果您的计算机上不存在文件夹 C:data/db,请创建它。原来MongoDB需要存在这个文件夹结构'data/db'才能运行。我希望这可以帮助别人。

于 2017-02-28T13:42:13.200 回答
1

我的原因是空间 - 在控制台中运行它:

df -h

或更具体地说:

du -hs /var/lib/mongodb/ 

检查他的磁盘使用情况。如果它是〜99% - 只需清理一些空间并重试!

于 2017-11-07T16:05:45.023 回答
1

首先,去c:\mongodb\bin>开启mongoDB,如果在控制台看到mongo正在监听27017端口,就OK如果没有,关闭控制台并创建文件夹c:\data\db,重新启动mongod

于 2017-12-20T06:19:45.877 回答
1

如果上述所有解决方案都无法解决,那么这可能会有所帮助。在某个地方,您可能已经通过 vagrant box 连接到本地 mongodb 数据库。

  1. vagrant up 然后 ssh 进入你已经与 mongodb 建立连接的 vagrant 机器(vagrant ssh vagrant_box_name)
  2. 使用 # (sudo nano /etc/mongod.conf) 注释掉 /etc/mongod.conf 中的 bind_ip 行
  3. 重新启动您的 mongodb 守护程序服务(sudo service mongod restart)瞧...
于 2018-06-20T18:02:14.363 回答
1

好吧,这可能很奇怪。我的错误发生是因为我的日志呈指数增长并堵塞了服务器空间,因此 mongo 没有足够的空间来存储任何东西。

所以我清除了日志

> /var/log/mongod.log
于 2020-06-08T14:46:17.303 回答
1

试试这个:

进入终端上的 bin 文件夹,然后写入:

sudo ./mongod --dbpath <write_here_the_path_to_your_database>,点击进入。(总是做同样的事情)。

然后sudo ./mongo

于 2020-09-08T21:18:44.993 回答
1

当我们使用任务栏管理器时,转到服务选项卡。那里 MongoDB 状态显示已停止。右键开始。它将连接 MongoDB 服务器版本。用于检查类型“db”。


数据库测试

它会正常工作。

于 2021-05-26T03:20:37.470 回答
1

对于我的情况:

  • 操作系统:CentOS 7

错误

> mongo
MongoDB shell version v4.4.2
connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb
Error: couldn’t connect to server 127.0.0.1:27017, connection attempt failed: SocketException: Error connecting to 127.0.0.1:27017 caused by Connection refused
connecct@src/mongo/shell/mongo.js 374 17
@(connect) 2 6
exception connect failed 
existing with code 1

原因

  • mongod不运行
    • 但是如果运行mongod,对于没有访问权限的情况将不起作用

解决方案

  • 使用root运行mongod
sudo /data/mongodb/bin/mongod --config /data/mongodb/conf/mongodb.conf &
于 2021-09-06T02:52:09.570 回答
0

我在 AWS EC2 上连接到 Mongo 时遇到了同样的错误。这就是解决它 的方法https://serverfault.com/a/347159/62381 从配置文件中删除 bind_ip

于 2015-07-31T16:01:42.053 回答
0

这对我有用:-

在 Mongo 3.2 for window 中,您应该启动 Mongodb 服务。所以,运行Command Prompt as Administratorthen net start MongoDB

于 2016-01-07T05:49:33.813 回答
0

最后我得到了这是一种简单的方式..

打开终端并转到 mongodb 位置。就我而言,它是

e:\mongodb\bin> 

并键入以下命令并按回车键..

mongod --config e:\mongodb\mongo.config

打开另一个终端并使用

mongo.exe

就是这样..你可以使用mongo

于 2016-05-29T10:46:18.707 回答
0

这是一个老问题,但是,作为一个新手,我想我会补充一点(使用 Webstorm),您需要单击 Mongo Explorer(窗口最右侧的选项卡)。从那里:

- 点击设置。- 单击浏览按钮(看起来像一个带有“...”的按钮)。- 转到 Program Files > MongoDB > Server > 3.4 > bin > mongo.exe(您的版本可能与 3.4 不同) - 之后,单击右侧的绿色加号。将打开一个窗口 - 在“标签”插槽中输入名称。- 单击应用。

您现在应该已连接。在终端中输入“mongod”是不够的。您还必须执行上述步骤。

我提前向那些没有使用 Webstorm 的人道歉!不确定使用其他 IDE 的步骤。

于 2017-03-09T02:23:30.413 回答
0

如果您通过 brew 安装(在 osx 上)首先sudo mkdir /data/db 通过键入(保持打开状态)运行启动 mondoDB 守护程序mongod,然后通过键入mongo新的终端选项卡运行 mongo

于 2017-05-15T07:43:18.720 回答
0

只需在 C 驱动器中创建一个名为“data”的文件夹,然后在 data 文件夹中创建另一个名为“db”的文件夹。然后执行 mongod.exe :)

于 2018-03-31T06:32:24.943 回答
0

首先,您必须启动mongod服务器,然后在另一个终端中您必须启动mongo shell。

用于启动,mongo 服务器

1.如果你的路径是默认路径(数据/数据库)简单的终端 触发mongod

2.如果您的路径不是data/db,那么您的命令如下: mongod --dbpath 'here your path come'

为了启动 mongo shell,只需在另一个终端中触发mongo

如果您在端口 27017 上等待连接,那么您的 mongo 已成功启动。

希望你能明白我的意思

于 2018-04-05T05:07:28.697 回答
0

我有同样的问题,我删除了 E:\Mongo Data Files\db\mongod.lock 文件,所以它开始工作了。问题是由于服务器关闭不当造成的。所以锁定文件不干净。

于 2018-06-24T11:21:19.200 回答
0

@shakthydoss 的答案曾经运行良好,但是在第二个问题之后 .lock 不存在,我只是创建了一个空白的,并且运行良好。因此,请检查您的是否不存在。

如果您使用命令行:

cd /var/lib/mongodb

ls

"ls" 将列出文件夹中的所有文件,如果 mongod.lock 不存在,则:

sudo touch mongod.lock

最后运行命令。

mongod –-repair

sudo service mongod start 

Mongo 服务应该可以正常工作。

于 2018-09-26T14:25:07.637 回答
0

在 Windows 操作系统上解决此问题的步骤:

  1. 从C:\Program Files\MongoDB\Server\4.0\data中删除 mongod.lock 文件
  2. 点击C:\Program Files\MongoDB\Server\4.0\bin中的 mongod
  3. 点击C:\Program Files\MongoDB\Server\4.0\bin中的 mongo 启动 mongodb shell
于 2018-09-27T06:06:32.257 回答
0

对于 Windows

代替

mongodb://localhost:27017/yourDatabase

mongodb://yourComputerName:27017/yourDatabase

例子:

mongodb://Gabriel-Laptop:27017/shop


要查找您的计算机/笔记本电脑名称,请在搜索栏中View your PC name输入,附近Device name的名称就是您要查找的名称。


注意:我在某处读到localhost不建议在 Windows 操作系统中为 MongoDB 使用关键字(很可能在这里)。

于 2021-02-17T08:14:53.547 回答
0

你必须通过你的cmd访问你的src C: \ Program Files \ MongoDB \ Server \ 4.4 \ bin,然后你必须打开任务管理器->服务->(选择mongoDB)->启动它,然后通过cmd重新测试,它就会解决。

于 2021-03-18T17:11:57.607 回答
0

在终端中执行此步骤

  1. 通过运行此命令停止 mongodb

brew services stop mongodb-community

  1. 再次启动mongodb

brew services start mongodb-community

mongod

mongo

于 2022-02-03T05:36:39.467 回答