mongo-无法连接到服务器127.0.0.1:27017


164

我来自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

2
由于IMO本身与编程无关,因此我建议您在serverfault.com上问这个问题。
cimnine 2012年

2
我也面临着同样的问题。它的cus mongo无法在C:/ data / db中创建文件夹我遵循了这个tut mkyong.com/mongodb/how-to-install-mongodb-on-windows

使用公司笔记本电脑并在C:上安装MongoDB时,我遇到了相同的错误。由于具有管理特权,并且每次我在C:中进行安装或修改时,系统都会提示我我的管理员用户名和密码,这就是我无法使mongodb正常工作的原因。在D:上安装后,一切正常。
paranza

Answers:


47

如果mongo shell无法与mongod服务器对话,就会看到此错误。

这可能是因为地址错误(主机或IP)或未运行。要注意的一件事是所提供的日志跟踪未涵盖您的的“周五11月9日16:44:06” mongo timestamp

你能:

  1. 提供用于启动mongod进程的命令行参数(如果有)
  2. 提供mongod启动时的日志文件活动以及mongo shell启动尝试期间的日志?
  3. 确认mongod进程与mongo shell在同一台计算机上启动?

282

通常,这是由于尝试启动mongo shell之前没有启动mongod进程引起的。

启动mongod服务器

mongod

打开另一个终端窗口

启动mongo shell

mongo

3
这个案例对我来说很有效,我不得不做〜> sudo mongod --dbpath / dbpathlocation,然后打开新的终端运行mongo ...
Saji

5
什么工作对我来说在MacOS塞拉利昂是sudo mongod,然后mongo
阿明贾法里

运行mongod之前,我必须创建一个/ data / db目录
大学生

我简直不敢相信我要做的就是在运行之前mongod在后台或其他Shell中运行mongo。向Ravi Hamsa大喊
Kareem Jeiroudi

像魅力一样为我工作!
Sobhit Sharma,

86

解决。

此问题可以通过下面提到的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/


4
只是想知道/var/lib/mongodb/mongod.lock是什么,它出了什么问题?
奥兹

Ubuntu 18.04中的项目2是mongod --repair
Aline Matos

43

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

查找dbpath所在的位置-vim /etc/mongodb.conf

检查选项dbpath =

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

默认值: / data / db /

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

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

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 recovery


1
在ubuntu上工作。--journal解决了我的问题。真正的作用是什么?--journal有什么用?
grep 2014年

在fedora 20上为我工作。现在可以关闭第一个终端窗口吗?
Khayam Gondal 2014年

26

苹果系统

检查状态

brew services list

就像是:

Name    Status  User Plist
mongodb stopped  

启动它

brew services start mongodb

再试一次

mongo 要么 mongo --port 27017


1
这帮助我+1。
Sandeep,

没为我工作。我一直在努力处理这个MongoDB一个小时。哇!!!
格伦

这是帮我,谢谢你..
荫ByeBlogs

15

就我而言:

首先我打开配置文件

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

删除ip / port对我不起作用。实际上,它甚至进一步破坏了服务器。服务拒绝再次启动...
Cerin

1
小心bind_ip。如果您将其注释掉,它将允许远程连接到数据库,除非您具有安全性和身份验证设置,否则这显然是一个糟糕的主意。我相信MongoDB默认没有用户或密码,因此您需要注意这一点。
agm1984

也为我工作,但是在@ agm1984注释后不了解安全性,我将仅在开发模式下使用它,而在使用Mongodb的Atlas Cloud之后,我认为在我的情况下会更安全(使用我可怜的服务器技能:D)
Adrien V

1
@AdrienV当然,如果删除本地IP绑定是有风险的,因为它将允许从Internet访问。这只是开发服务器的一种解决方法。
Finn

bind_ip设置为其他未知ip。删除它可以解决/ db / data错误... ufff
zevero

14

确保您的mongo正在运行。我通过尝试修复mongodb来解决此问题,在那里我发现未创建运行数据库所需的目录。它显示此错误

输入: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,它奏效了。


14

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

以下是对我有帮助的步骤。

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

使用GUI运行,例如“ robomongo”

要么

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


12

我是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更改db路径(到程序文件),但是这些没有用。

对我有用的解决方案是:

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


6

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


5

要与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

您的问题已解决:)



3

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

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

这工作!但是这是暂时的,当我重新启动系统后,它没有再次运行
Predator X


2

今天我正在发生这种情况,我通过以下方式解决了它。

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

因此,问题是,我没有C:\data\db创建。

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

C:\ YourInstallationPath \ bin> mongod

当我mongo执行命令时,我遇到了问题。

Twist,我创建了必要的文件夹,但仍然遇到问题。这是因为mongo服务器已经在运行。要解决此问题,我mongod再次启动了命令,并且该命令自动引用到C:\data\db

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


2

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

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

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

然后重启:

brew services restart mongodb

现在工作正常。


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

2

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

sudo service mongod start

1

另一个为我解决了这个错误的解决方案,尽管只有当您通过虚拟机通过SSH连接(本地)访问mongo(至少是我的设置)时,这可能是一个特定于linux的环境变量问题:

export LC_ALL=C

另外,与使用sudo服务启动相比,将mongo作为守护程序运行还有更多的成功,我的理解是这是使用命令行参数而不是配置文件,因此这可能是我的配置文件存在问题:

mongod --fork --logpath /var/log/mongodb.log --auth --port 27017 --dbpath /var/lib/mongodb/admin

1

如果计算机上尚不存在文件夹C:data / db,则创建它。事实证明,MongoDB需要运行此文件夹结构'data / db'。我希望这可以帮助别人。


1

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

df -h

或更具体地说:

du -hs /var/lib/mongodb/ 

检查磁盘使用情况。如果约为99%,请清理一些空间,然后重试!


1

首先,转到c:\mongodb\bin>打开mongoDB,如果您在控制台中看到mongo在端口27017上监听,则可以,如果没有,请关闭控制台并创建文件夹c:\data\db,然后再次启动mongod


1

如果以上所有解决方案都无法解决,那么这可能会有所帮助。您可能已经通过游荡框与本地mongodb数据库建立连接。

  1. 流浪汉,然后将其SSH到与mongodb建立连接的流浪汉计算机中(vagrant ssh vagrant_box_name)
  2. 使用#(/ sudo nano /etc/mongod.conf)从/etc/mongod.conf中注释掉bind_ip行
  3. 重新启动您的mongodb守护程序服务(sudo服务mongod重新启动),瞧...

1

使用启动启动monogdb服务

sudo service mongod start 

然后从新窗口或终端使用启动Mongo Client

mongo

0

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

谢谢。



0

终于,我得到了一个简单的方法。

打开终端,然后转到mongodb位置。就我而言

e:\mongodb\bin> 

并键入以下命令,然后按Enter。

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

打开另一个终端并使用以下命令启动mongodb

mongo.exe

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


0

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

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

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

我向未使用Webstorm的人致歉!不确定使用其他IDE的步骤。


0

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


0

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


是什么让您认为询问者具有Windows或无法安装MongoDB?
Nemo
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.