无法连接到127.0.0.1:27017,原因:errno:111连接被拒绝


81

在ubuntu中尝试此mongo命令时,出现此错误。

    ritzysystem@ritzysystem-Satellite-L55-A:~$ mongo
    MongoDB shell version: 2.6.1
    connecting to: test
    2014-10-06T12:59:35.802+0530 warning: Failed to connect to 127.0.0.1:27017, reason: errno:111 Connection refused
    2014-10-06T12:59:35.802+0530 Error: couldn't connect to server 127.0.0.1:27017 (127.0.0.1), connection attempt failed at src/mongo/shell/mongo.js:146
    exception: connect failed

我该如何纠正这个问题呢?


6
mongod服务器未运行,请mongod在终端上键入以将其打开。
拉维2014年

2
您的mongod不在127.0.0.1上运行,您可以尝试这样的“ mongo --host localhost”吗
Lalit Agarwal 2014年

1
谢谢大家,我尝试运行mongo,但它最终没有运行,我发现硬盘上没有空间,我清空了一些空间,最后按照与mongodb docs中给出的安装步骤相同的安装步骤重新安装了它,最后重新启动了服务器它正在运行。docs.mongodb.org/manual/tutorial/install-mongodb-on-ubuntu
Ashish Ranjan

4
您可以回答自己的问题(而不是发表评论)。该解决方案将更明显,并将对他人有所帮助
mihai 2014年

Answers:


98

运行以下命令:

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

与MongoDB errno 111的连接被拒绝

苹果系统:

rm /usr/local/var/mongodb/mongod.lock  
sudo service mongod restart

在Ubuntu上:mongod代替mongodb
Blacksonic

6
在Ubuntu上运行sudo服务mongod后重启:Job for mongod.service failed. See "systemctl status mongod.service" and "journalctl -xe" for details.
Flavio Wuensche 2015年

4
有没有mongodb/var/lib/
RegarBoy

1
mongod改为跑步
Iman Mohamadi

在Ubuntu Server 16.04.1 LTS上完美运行
Cami Rodriguez

29

我在Mac OS上遇到了同样的问题尝试运行sudo mongod并在新的终端选项卡中运行mongo


我也不得不mongo和sudo一起跑步
Tomasz Mularczyk

22

谢谢大家,我尝试运行mongo,但它最终没有运行,我发现硬盘上没有空间,我清空了一些空间,最后按照与mongodb docs中给出的安装步骤相同的安装步骤重新安装了它,最后重新启动了服务器它正在运行。

https://docs.mongodb.org/manual/tutorial/install-mongodb-on-ubuntu


我不知道为什么要重新安装。我认为它足以通过删除不需要的文件来释放一些空间,然后您可能要重新启动mongod服务,因为mongod服务可能由于没有空间而被杀死。是否有任何特定原因需要重新安装?
西瓦S

18

在我的情况下,错误是由于mongodb用于存储数据的/ data / db文件夹丢失。请$sudo mongod 在您的终端中键入此命令。如果错误消息是这样的:

missing data/db folder error

只需创建文件夹,就可以了。


奇怪它不是自动创建的。
basickarl 2016年

在根文件夹中创建directroy data / db,现在可以正常工作。
vidur punj

注意:别忘了还要授予该文件夹权限。mkdir /data/db然后chmod 777 /data/db
AndreFeijo,


9

可能您的硬盘驱动器中没有空间。通过键入promt进行检查 df -h

请注意,即使相应分区中有3gb可用,mongo也可能会失败。有关详细信息,您可能要检查日志:cat /var/log/mongodb/mongod.log


“ mongodb.log”有一个错字,写为“ mongod.log”。我尝试编辑,但是stackoverflow告诉我必须至少编辑6个字符。糟糕的主意imo SO。
罗伯特·布拉科

8

我在Mac上也遇到了同样的问题,并且我通过自制软件安装了mongodb。我通过自制软件服务命令解决了这个问题。

首先启动mongodb服务:

$ brew services start mongodb

启动mongodb终端

$ mongo

停止mongodb服务:

$ brew services stop mongodb


7

要连接控制台之前,请确保已运行MongoDB的服务。

运行并启动服务器:

$ sudo mongod

然后:

$ mongo
...
>

5

做这个:

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

如果您使用的是Ubuntu 16.04,则可以通过runnign确定:

lsb_release -a

您需要/lib/systemd/system/mongod.service使用以下内容创建一个新文件:

[Unit]
Description=High-performance, schema-free document-oriented database
After=network.target
Documentation=https://docs.mongodb.org/manual

[Service]
User=mongodb
Group=mongodb
ExecStart=/usr/bin/mongod --quiet --config /etc/mongod.conf

[Install]
WantedBy=multi-user.target

4

在我的情况下,问题是由于明显失去了对mongodb.lock文件的许可所致。我可以使用以下命令解决更改权限的问题:

sudo chown mongodb:mongodb /var/lib/mongodb/mongodb.lock

以下是我的调查: 分步验证


4

我认为除了磁盘空间issuse之外,您应该检查登录/var/log/mongodb以了解为什么mongodb启动失败的详细信息。

cat /var/log/mongodb/mongod.log

2016-06-26T15:26:26.642+0800 I CONTROL  [main] ***** SERVER RESTARTED *****
2016-06-26T15:26:26.649+0800 I CONTROL  [initandlisten] MongoDB starting : pid=8130 port=27017 dbpath=/var/lib/mongodb 64-bit host=hadoop-master
2016-06-26T15:26:26.649+0800 I CONTROL  [initandlisten] db version v3.2.7
2016-06-26T15:26:26.649+0800 I CONTROL  [initandlisten] git version: 4249c1d2b5999ebbf1fdf3bc0e0e3b3ff5c0aaf2
2016-06-26T15:26:26.649+0800 I CONTROL  [initandlisten] OpenSSL version: OpenSSL 1.0.1f 6 Jan 2014
2016-06-26T15:26:26.649+0800 I CONTROL  [initandlisten] allocator: tcmalloc
2016-06-26T15:26:26.649+0800 I CONTROL  [initandlisten] modules: none
2016-06-26T15:26:26.649+0800 I CONTROL  [initandlisten] build environment:
2016-06-26T15:26:26.649+0800 I CONTROL  [initandlisten]     distmod: ubuntu1404
2016-06-26T15:26:26.649+0800 I CONTROL  [initandlisten]     distarch: x86_64
2016-06-26T15:26:26.649+0800 I CONTROL  [initandlisten]     target_arch: x86_64
2016-06-26T15:26:26.649+0800 I CONTROL  [initandlisten] options: { config: "/etc/mongod.conf", net: { bindIp: "127.0.0.1,192.168.3.10", port: 27017 }, storage: { dbPath: "/var/lib/mongodb", journal: { enabled: true } }, systemLog: { destination: "file", logAppend: true, path: "/var/log/mongodb/mongod.log" } }
2016-06-26T15:26:26.678+0800 E NETWORK  [initandlisten] Failed to unlink socket file /tmp/mongodb-27017.sock errno:1 Operation not permitted
2016-06-26T15:26:26.678+0800 I -        [initandlisten] Fatal Assertion 28578
2016-06-26T15:26:26.678+0800 I -        [initandlisten] 

***aborting after fassert() failure

因此,这里我需要rm中的所有文件/tmp。对我来说很好。



3

在我的情况下,/ etc / mongodb.conf文件中的bind_ip不是127.0.0.1,因此将bind_ip更改为127.0.0.1(它可能是逗号分隔的值,因此请确保127.0.0.1是其中之一),然后重新启动系统即可生效。只重启面对的人

$sudo service mongod restart
Failed to restart mongod.service: Unit mongod.service not found.

3

对于mongo v3.6.3 +(或2019版本)

rm /var/lib/mongodb/mongod.lock
service mongodb restart



1

我与您有相同的错误,这是我的情况:

~# mongod
2018-07-15T05:27:08.265+0000 I JOURNAL  [initandlisten] journal dir=/data/db/journal
2018-07-15T05:27:08.265+0000 I JOURNAL  [initandlisten] recover : no journal files present, no recovery needed
2018-07-15T05:27:08.301+0000 I JOURNAL  [durability] Durability thread started
2018-07-15T05:27:08.301+0000 I JOURNAL  [journal writer] Journal writer thread started
2018-07-15T05:27:08.302+0000 I CONTROL  [initandlisten] MongoDB starting : pid=26796 port=27017 dbpath=/data/db 64-bit host=ubuntu-s-2vcpu-4gb-sfo2-01
2018-07-15T05:27:08.302+0000 I CONTROL  [initandlisten] ** WARNING: You are running this process as the root user, which is not recommended.
2018-07-15T05:27:08.302+0000 I CONTROL  [initandlisten] 
2018-07-15T05:27:08.302+0000 I CONTROL  [initandlisten] 
2018-07-15T05:27:08.302+0000 I CONTROL  [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/defrag is 'always'.
2018-07-15T05:27:08.302+0000 I CONTROL  [initandlisten] **        We suggest setting it to 'never'
2018-07-15T05:27:08.302+0000 I CONTROL  [initandlisten] 
2018-07-15T05:27:08.302+0000 I CONTROL  [initandlisten] db version v3.0.6
2018-07-15T05:27:08.302+0000 I CONTROL  [initandlisten] git version: 1ef45a23a4c5e3480ac919b28afcba3c615488f2
2018-07-15T05:27:08.302+0000 I CONTROL  [initandlisten] build info: Linux build6.ny.cbi.10gen.cc 2.6.32-431.3.1.el6.x86_64 #1 SMP Fri Jan 3 21:39:27 UTC 2014 x86_64 BOOST_LIB_VERSION=1_49
2018-07-15T05:27:08.302+0000 I CONTROL  [initandlisten] allocator: tcmalloc
2018-07-15T05:27:08.302+0000 I CONTROL  [initandlisten] options: {}
2018-07-15T05:27:08.308+0000 I NETWORK  [initandlisten] waiting for connections on port 27017

我键入mongod来启动服务器,然后键入control+c退出到shell

然后我型mongo,我得到了

~# mongo
MongoDB shell version: 3.0.6
connecting to: test
2018-07-15T05:05:02.738+0000 W NETWORK  Failed to connect to 127.0.0.1:27017, reason: errno:111 Connection refused
2018-07-15T05:05:02.739+0000 E QUERY    Error: couldn't connect to server 127.0.0.1:27017 (127.0.0.1), connection attempt failed
    at connect (src/mongo/shell/mongo.js:179:14)
    at (connect):1:6 at src/mongo/shell/mongo.js:179

如您所见,我的错误信息与您相同。

这是当我输入control+c退出mongod时mongod并非从后端进程开始的情况。

我们可以添加--fork args来使进程守护进程生效。

#  mongod --logpath /usr/local/mongodb/log.txt --fork

如果要使用--fork,则必须设置--logpath

那么您将成功连接到mongo


1

遵循以下简单步骤;(也适用于MAC OS)

  1. 打开终端并运行 sudo mongod

  2. 打开一个新的终端选项卡(不要关闭第1步选项卡)并运行 sudo mongo

就这样


0

Mongo 3。*。*-OSX-2017年

从自述文件

RUNNING

将目录更改为mongodb-osx-x86_64-3。*。* / bin

要运行单个服务器数据库:

$ mkdir /data/db
$ ./mongod

转到新终端

$ # The mongo javascript shell connects to localhost and test database 
$ # by default -Run the following command in new terminal
$ ./mongo 
> help

为什么要投票?这就是你应该做的方式?
米娜·加布里埃尔

0

我只需sudo mongomongod命令后输入即可解决。



0

对我的案子只有一些想法。

如果已将dbPath和logPath目录更改为自定义值(例如/ data / mongodb / data,/ data / mongodb / log),则必须将它们锁定为mongodb用户,否则,将不存在的/ data / db / dir将会被使用。

sudo chown -R mongodb:mongodb /data/mongodb/

sudo service mongod restart

0

最新的MongoDB v 3.6.5 +中的mongod.conf文件中有更改

这是我在Mac OS High Sierra v 10.12.3上解决此问题的方法

注意:我假设您已经使用自制软件安装/升级了MongoDB

mongo-版本

MongoDB shell version v3.6.5 
git version: a20ecd3e3a174162052ff99913bc2ca9a839d618 
OpenSSL version: OpenSSL 1.0.2o  27 Mar 2018 
allocator: system modules: none build environment:
distarch: x86_64
target_arch: x86_64
  1. 查找mongod.conf文件

     sudo find / -name mongod.conf` 
    

    /usr/local/etc/mongod.conf>第一个结果。

  2. 打开mongod.conf文件

    sudo vi /usr/local/etc/mongod.conf
    
  3. 编辑下远程访问文件中网:部分

     port: 27017  
     bindIpAll: true 
     #bindIp: 127.0.0.1 // comment this out
    
  4. 重新启动mongodb

    如果您使用brew安装,则

    brew services stop mongodb
    
    brew services start mongodb
    

否则,终止进程。

   sudo kill -9 <procssID>

1
对于阅读此答案的人们:小心!除非我没有记错,否则注释掉bindIp会将您的数据库暴露于开放的Internet上,除非您已启用授权(默认情况下未启用)。

0

与数据库的连接有问题,可能是由于多种原因。对我来说,这是服务器计算机上的磁盘空间不足,当mongo由于磁盘空间不足而拒绝连接时,请检查服务器计算机的本地du -sh存储空间是否不足,检查日志大小并采取相应措施,可能会出现问题由于存在dbpath而/etc/mongod.conf与服务器实际运行dbpath冲突而存在,mongod 如果您遇到此类问题,请在下面的给定链接中查看我的回答。 https://stackoverflow.com/a/53057695/8247133


0

我遇到了同样的问题,因此请检查是否有mongodb文件夹,首先尝试删除该文件夹

rm -rf /var/lib/mongodb/*

现在尝试启动mongo,如果存在相同的问题,则尝试阻止其启动mongo的mongodb锁定文件,因此请删除mongo锁定文件

rm /var/lib/mongodb/mongod.lock

为了有力 rm -rf /var/lib/mongodb/mongod.lock

服务mongodb重新启动(如果已经处于sudo模式),否则您需要使用like sudo service mongod start

或者您可以使用fork方法启动服务器

mongod --fork --config /etc/mongod.conf

为了观看同样的内容,请使用以下命令进行检查

ps aux | grep mongo

0

对于那些使用Windows的用户。我在Windows上遇到了同样的问题。重新启动Mongodb服务即可解决此问题。

以下是在Windows上重新启动的步骤:

一世)。在Windows上转到“服务”。

ii)。在服务列表中搜索“ MongoDB”。

iii)。右键单击“开始” /“重新启动”,具体取决于您的状态。

iv)。状态变为“正在运行”后,请通过运行“ Mongo”或连接您的Mongo客户端来检查问题是否得到解决。


0

对于macOS许多的答案是根据已经过时了官方的文档。某种程度上发生了brew变化,我们应该如何安装MongoDB,首先从您的计算机上卸载它macOS(即使可能没有必要),然后使用以下步骤安装它:

  1. brew tap mongodb/brew
  2. brew install mongodb-community@4.4
  3. brew services start mongodb-community@4.4

当心4.4零件,它将改变。如果将来会中断,请参考官方文档并安装版本,这在链接的教程中建议。

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.