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

时间:2014-10-06 07:32:16

标签: node.js mongodb express

在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

我怎么能纠正这个问题,任何人都有同样的问题。

27 个答案:

答案 0 :(得分:90)

运行以下命令:

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

Connection refused to MongoDB errno 111

MacOS:

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

答案 1 :(得分:25)

我在Mac OS上遇到了同样的问题 尝试运行 sudo mongod ,然后在新的终端标签页中运行 mongo

答案 2 :(得分:20)

谢谢大家我尝试运行mongo它没有运行终于我发现我的硬盘中没有空间我清空了一些空间并最终安装了相同的安装程序,如下所示安装mongodb docs中给出的最终重新启动服务器并且它正在运行。

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

答案 3 :(得分:15)

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

<强> missing data/db folder error

只需创建文件夹,即可开始使用。

答案 4 :(得分:9)

首先, 启动MongoDB:

sudo service mongod start

然后,运行:

mongo

答案 5 :(得分:7)

您的硬盘中可能没有空间。 通过输入promt df -h

来检查它

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

答案 6 :(得分:7)

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

首先启动mongodb服务:

$ brew services start mongodb

启动mongodb终端

$ mongo

停止mongodb服务:

$ brew services stop mongodb

答案 7 :(得分:5)

这样做:

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

如果你使用的是Ubuntu 16.04,你可以通过运行这个来解决这个问题:

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

答案 8 :(得分:5)

确保在想要连接控制台之前运行MongoDB的服务。

运行并启动服务器:

$ sudo mongod

然后:

$ mongo
...
>

答案 9 :(得分:4)

我认为除了磁盘空间问题,您应该检查/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

所以,在这里我需要知道/tmp中的所有文件。这对我来说很好。

答案 10 :(得分:3)

我理解这个问题与Ubuntu有关。

但是如果你在Mac上遇到同样的错误并且不希望$ sudo mongod在单独的标签页上运行,你可以执行以下操作来修复连接错误,如果你有Homebrew -

brew services start mongodb

根据此帖子的答案 - Cannot connect to mongodb errno:61 Connection refused

答案 11 :(得分:3)

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

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

我的调查如下: step-by-step verification

答案 12 :(得分: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.

答案 13 :(得分:2)

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

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

答案 14 :(得分:1)

非常简单,只删除文件/var/lib/mongodb/mongodb.lock。仅执行后:mongo。完成

答案 15 :(得分:1)

/etc/mongod.conf中指定的mongo数据目录可能不是有效路径。

如果路径确实存在,请尝试重新检查路径sudo vi /etc/mongod.conf并检查dbPath

答案 16 :(得分: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

答案 17 :(得分:0)

对于macOS,根据official docs,许多答案已经过时了。 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部分,它将改变。如果将来会中断,请参考official docs并安装版本,该版本在链接的教程中建议。

答案 18 :(得分:0)

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

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

i)。在Windows上转到“服务”。

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

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

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

答案 19 :(得分:0)

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

rm -rf /var/lib/mongodb/*

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

rm /var/lib/mongodb/mongod.lock

强制rm -rf /var/lib/mongodb/mongod.lock

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

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

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

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

ps aux | grep mongo

答案 20 :(得分:0)

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

  1. 打开终端并运行sudo mongod

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

仅此而已

答案 21 :(得分:0)

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

答案 22 :(得分:0)

最新的MongoDB v 3.6.5 +

中的 mongod.conf 文件中有更改。

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

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

  

mongo --version

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. 在文件中进行编辑,以便在 net:部分

    下进行远程访问
     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>

答案 23 :(得分:0)

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

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

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

sudo service mongod restart

答案 24 :(得分:0)

我刚刚按照此处的说明删除了mongo:https://docs.mongodb.com/manual/tutorial/install-mongodb-on-ubuntu/然后我按照给定链接中的说明再次安装。一切顺利!

答案 25 :(得分:0)

我只是在sudo mongo命令之后输入mongod来解决这个问题。

答案 26 :(得分:0)

Mongo 3。*。* - OSX - 2017

来自README

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