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

时间:2012-11-09 16:48:40

标签: mongodb pymongo

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

42 个答案:

答案 0 :(得分:229)

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

启动mongod服务器

mongod

打开另一个终端窗口

启动mongo shell

mongo

答案 1 :(得分:64)

解决。

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

答案 2 :(得分:38)

如果mongo shell无法与mongod服务器通信,则会出现此错误。

这可能是因为地址错误(主机或IP)或者它没有运行。需要注意的一点是提供的日志跟踪不包括mongo timestamp的“Fri Nov 9 16:44:06”。

你可以:

  1. 提供用于启动您的命令行参数(如果有) mongod进程
  2. 提供mongod启动时的日志文件活动以及 在mongo shell启动尝试期间记录日志?
  3. 确认您的mongod进程正在启动 机器作为mongo shell?

答案 3 :(得分:35)

此方法仅适用于修复数据文件而不保留原始文件

找到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

答案 4 :(得分:11)

就我而言:

首先我打开配置文件

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

答案 5 :(得分:11)

确保您的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并且它有效。

答案 6 :(得分:9)

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

以下是帮助我的步骤。

  1. 转到C:\
  2. 创建"数据"夹
  3. "数据"创造" db"夹
  4. 开放式终端(CMD) - >转到EX:" c:\MongoDB\Server\3.4\bin"
  5. 输入mongod =>这将启动mongo服务器(保持打开状态)
  6. 使用GUI,EX" robomongo"运行

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

答案 7 :(得分:8)

MAC OS

检查状态

brew services list

类似的东西:

Name    Status  User Plist
mongodb stopped  

启动

brew services start mongodb

再试一次

mongomongo --port 27017

答案 8 :(得分:4)

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

答案 9 :(得分:4)

我是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行,其中状态已停止。然后,我右键单击并单击开始,一切正常运行 :)

答案 10 :(得分:3)

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

您的问题已解决:)

答案 11 :(得分:2)

经过大量搜索后,我也遇到了同样的问题,请按照以下步骤解决此问题:

ChangeFeedProcess

答案 12 :(得分:1)

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

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

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

然后重新启动:

brew services restart mongodb

现在工作正常。

答案 13 :(得分:1)

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

sudo service mongod start

答案 14 :(得分:1)

今天我发生了这件事,我以下列方式解决了这个问题。

机器:我正在使用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,这完全解决了我的问题。

答案 15 :(得分:1)

我也有同样的问题,然后我被这两行代码所修复。希望有帮助

systemctl start mongod
systemctl enable mongod

答案 16 :(得分:1)

@shakthydoss的回答一次可以很好地工作,但是在第二个问题之后,.lock不存在了,我只是创建了一个空白的,并且它很好地工作。因此,检查您是否不在那里。

如果使用命令行:

cd /var/lib/mongodb

ls

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

sudo touch mongod.lock

最后运行命令。

mongod –-repair

sudo service mongod start 

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

答案 17 :(得分:1)

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

所以我清除了日志

> /var/log/mongod.log

答案 18 :(得分:1)

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. 右键单击并选择开始

答案 19 :(得分:1)

尝试这个:

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

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

然后sudo ./mongo

答案 20 :(得分:1)

在用尽了很多很多sulotions之后,我做到了-

sudo brew services start mongodb-community 而不是 sudo service mongod start 并且成功了。

所以,先试试

sudo brew services start mongodb-community

然后启动mongo shell,做-

mongo

答案 21 :(得分:1)

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

答案 22 :(得分:1)

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

df -h

或更具体地说:

du -hs /var/lib/mongodb/ 

检查磁盘使用情况。如果它是~99% - 只需清理一些空间再试一次!

答案 23 :(得分:1)

如果您的计算机上尚未存在文件夹C:data / db,请创建该文件夹。事实证明,MongoDB需要存在这种文件夹结构&data; data / db&#39;跑步。我希望这有助于某人。

答案 24 :(得分:1)

另一个解决了同样错误的解决方案,虽然这个可能只是你通过虚拟机通过SSH连接访问mongo(本地)(至少那是我的设置),并且可能是linux特定的环境变量问题:

export LC_ALL=C

另外,我有更多的成功运行mongo作为守护进程服务然后使用sudo服务启动,我的理解是这使用命令行参数而不是配置文件所以它可能是我的配置文件的问题:

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

答案 25 :(得分:0)

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

windows

mkdir c:/data/db

ubuntu:

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

然后运行

sudo service mongod start

检查

sudo service mongod status

然后运行

mongo

答案 26 :(得分:0)

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


<块引用>

数据库 测试

它会正常工作。

答案 27 :(得分:0)

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

答案 28 :(得分:0)

对于 Windows

代替

mongodb://localhost:27017/yourDatabase

mongodb://yourComputerName:27017/yourDatabase

示例:

mongodb://Gabriel-Laptop:27017/shop


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


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

答案 29 :(得分:0)

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

感谢。

答案 30 :(得分:0)

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

答案 31 :(得分:0)

我的工作是: -

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

答案 32 :(得分:0)

最后我得到的是一个简单的方法..

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

e:\mongodb\bin> 

并输入以下命令并按Enter ..

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

打开另一个终端并使用

启动mongodb
mongo.exe

多数民众赞成......你可以使用mongo

答案 33 :(得分:0)

使用以下命令启动monogdb服务

sudo service mongod start 

然后从新窗口或终端使用

启动mongo客户端
mongo

答案 34 :(得分:0)

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

sudo service mongod start

答案 35 :(得分:0)

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

启动时,mongo服务器

1。如果您的路径是默认路径(数据/数据库)           在终端

中简单解雇 mongod

2. 如果您的路径不是 data / db ,那么您的命令就像           跟随:            mongod --dbpath'这里你的路径是'

启动mongo shell,     只需在另一个终端

中解雇 mongo

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

希望你能得到我的观点

答案 36 :(得分:0)

这是一个老问题,但是,作为一个新手我想我添加(使用Webstorm)你需要点击Mongo Explorer(窗口最右侧的标签)。从那里:

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

您现在应该连接。进入&#34; mongod&#34;在终端还不够。您还必须执行上述步骤。

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

答案 37 :(得分:0)

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

答案 38 :(得分:0)

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

  1. C:\ Program Files \ MongoDB \ Server \ 4.0 \ data
  2. 中删除mongod.lock文件
  3. 单击 C:\ Program Files \ MongoDB \ Server \ 4.0 \ bin
  4. 中的mongod
  5. C:\ Program Files \ MongoDB \ Server \ 4.0 \ bin 中单击mongo,以启动mongodb shell

答案 39 :(得分:0)

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

答案 40 :(得分:0)

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

  1. 无所事事,然后SSH进入与mongodb建立连接的无业游民计算机(无业ssh vagrant_box_name)
  2. 使用#(sudo nano /etc/mongod.conf)从/etc/mongod.conf中注释出bind_ip行
  3. 重新启动您的mongodb守护程序服务(sudo服务mongod重新启动) 瞧...

答案 41 :(得分:0)

只需创建一个名为&#34; data&#34;的文件夹在C盘和内部数据文件夹中创建另一个名为&#34; db&#34;的文件夹。然后执行mongod.exe:)