【问题标题】:Failed to connect to 127.0.0.1:27017, reason: errno:111 Connection refused无法连接到 127.0.0.1:27017,原因:errno:111 连接被拒绝
【发布时间】:2014-11-30 10:38:50
【问题描述】:

在 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

如果有人遇到同样的问题,我该如何解决。

【问题讨论】:

  • mongod 服务器没有运行,在终端上输入mongod 将其打开。
  • 你的 mongod 没有在 127.0.0.1 上运行你可以试试这样 "mongo --host localhost"
  • 谢谢大家我试过运行mongo它没有运行最后我发现我的硬盘中没有空间我清空了一些空间最后重新安装了它与以下相同的安装过程安装为mongodb 文档中给出的最终重新启动了服务器并且它正在运行。 docs.mongodb.org/manual/tutorial/install-mongodb-on-ubuntu
  • 您可以回答自己的问题(而不是发表评论)。解决方案会更加明显,并且会帮助其他人

标签: node.js mongodb express


【解决方案1】:

运行以下命令:

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

【讨论】:

  • 在 Ubuntu 上:mongod 而不是 mongodb
  • 在 Ubuntu 上运行 sudo service mongod restart 后:Job for mongod.service failed. See "systemctl status mongod.service" and "journalctl -xe" for details.
  • /var/lib/ 中没有mongodb
  • 改为运行mongod
  • 在 Ubuntu Server 16.04.1 LTS 上完美运行
【解决方案2】:

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

【讨论】:

  • 我还必须使用 sudo 运行 mongo
【解决方案3】:

谢谢大家 我尝试运行 mongo 它最终没有运行我发现我的硬盘中没有空间 我清空了一些空间,最后重新安装了它,按照 mongodb 文档中给出的安装过程进行安装重新启动服务器并且它正在运行。

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

【讨论】:

  • 不知道为什么要重装。我认为通过删除不需要的文件来释放一些空间就足够了,然后你可能想要重新启动 mongod 服务,因为 mongod 服务可能由于没有空间而被杀死。有什么具体原因要重新安装吗?。
【解决方案4】:

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

missing data/db folder error

只需创建文件夹即可。

【讨论】:

  • 奇怪的是它不是自动创建的。
  • 在根文件夹中创建directroy data/db,现在工作正常。
  • 注意:不要忘记也授予文件夹权限。 mkdir /data/db 然后chmod 777 /data/db
【解决方案5】:

首先, 启动 MongoDB:

sudo service mongod start

然后,运行:

mongo

【讨论】:

    【解决方案6】:

    您的硬盘驱动器中可能没有空间。 通过输入提示符df -h 来检查它

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

    【讨论】:

    • "mongodb.log" 有一个错字,写成 "mongod.log"。我试图编辑,但 stackoverflow 告诉我我必须编辑至少 6 个字符。糟糕的主意imo SO。
    【解决方案7】:

    确保在连接控制台之前已经运行了 MongoDB 的服务。

    运行并启动服务器:

    $ sudo mongod
    

    然后:

    $ mongo
    ...
    >
    

    【讨论】:

      【解决方案8】:

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

      首先启动mongodb服务:

      $ brew services start mongodb

      启动mongodb终端

      $ mongo

      停止mongodb服务:

      $ brew services stop mongodb

      【讨论】:

        【解决方案9】:

        这样做:

        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
        

        【讨论】:

          【解决方案10】:

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

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

          接下来是我的调查:

          【讨论】:

            【解决方案11】:

            我认为除了磁盘空间问题,你应该查看/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 中的所有文件。这对我来说很好。

            【讨论】:

              【解决方案12】:

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

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

              【讨论】:

                【解决方案13】:

                我知道问题是关于 Ubuntu。

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

                brew services start mongodb
                

                基于此线程的答案 - Cannot connect to mongodb errno:61 Connection refused

                【讨论】:

                  【解决方案14】:

                  在我的情况下,/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.
                  

                  【讨论】:

                    【解决方案15】:

                    很简单,只删除一个文件/var/lib/mongodb/mongodb.lock。仅执行后:mongo。完成了

                    【讨论】:

                      【解决方案16】:

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

                      尝试重新检查路径是否确实存在sudo vi /etc/mongod.conf 并检查dbPath

                      【讨论】:

                        【解决方案17】:

                        我和你有同样的错误,这是我的情况:

                        ~# 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
                        

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

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

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

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

                        如果你想使用--fork,你必须设置--logpath

                        那么你将成功连接到 mongo

                        【讨论】:

                          【解决方案18】:

                          按照这个简单的步骤; (也适用于 MAC 操作系统)

                          1. 打开终端并运行sudo mongod

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

                          就是这样

                          【讨论】:

                            【解决方案19】:

                            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
                            

                            【讨论】:

                            • 为什么投反对票?这就是你应该这样做的方式??!!
                            【解决方案20】:

                            我通过在mongod 命令后输入sudo mongo 解决了这个问题。

                            【讨论】:

                              【解决方案21】:

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

                              【讨论】:

                                【解决方案22】:

                                只是对我的情况的一些想法。

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

                                sudo chown -R mongodb:mongodb /data/mongodb/
                                
                                sudo service mongod restart
                                

                                【讨论】:

                                  【解决方案23】:

                                  在最新的 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>
                                  

                                  【讨论】:

                                  • 致阅读此答案的人:小心!除非我弄错了,否则注释掉 bindIp 会将您的数据库暴露给开放的互联网,除非您启用了授权(默认情况下未启用)。
                                  【解决方案24】:

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

                                  【讨论】:

                                    【解决方案25】:

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

                                    rm -rf /var/lib/mongodb/*
                                    

                                    现在尝试启动 mongo,如果同样的问题,那么它的 mongodb 锁定文件会阻止启动 mongo,所以请删除 mongo 锁定文件

                                    rm /var/lib/mongodb/mongod.lock
                                    

                                    强烈要求rm -rf /var/lib/mongodb/mongod.lock

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

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

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

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

                                    ps aux | grep mongo
                                    

                                    【讨论】:

                                      【解决方案26】:

                                      对于那些使用 Windows 的人。我在 Windows 上遇到了同样的问题。 重启MongoDB服务即可解决。

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

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

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

                                      iii)。根据您的状态右键单击“开始”/“重新启动”。

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

                                      【讨论】:

                                        【解决方案27】:

                                        对于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 并安装链接教程中建议的版本。

                                        【讨论】:

                                          猜你喜欢
                                          • 2017-08-22
                                          • 1970-01-01
                                          • 1970-01-01
                                          • 2018-10-24
                                          • 2020-06-07
                                          • 2019-05-11
                                          • 2021-11-13
                                          • 2019-12-13
                                          • 2020-11-22
                                          相关资源
                                          最近更新 更多