【问题标题】:Cannot connect to mongodb errno:61 Connection refused无法连接到 mongodb errno:61 连接被拒绝
【发布时间】:2014-06-18 13:08:11
【问题描述】:

我最近使用Homebrew 安装了 mongodb-2.6.0。 成功安装后,我尝试使用mongo 命令进行连接。我收到以下不允许我连接的错误:

Failed to connect to 127.0.0.1:27017, reason: errno:61 Connection refused

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 服务正在运行吗?您的 conf 文件有哪些配置选项?
  • 你是用sudo apt-get 安装的吗?我读过有人遇到此问题...尝试通过MongoDB 站点删除和下载。
  • 我是用自制软件安装的,官网上的说明并没有说明我需要设置一个.config文件。我只是下载了它并运行了导致上述错误的“猫鼬”命令。
  • 检查你的日志,如果我没记错的话,一般在/var/logs/mongodb
  • 我通过下载重新安装并解压缩文件。我正在运行“mongo”,但仍然收到相同的错误。

标签: macos mongodb homebrew


【解决方案1】:

当 mongodb 服务未在 mac 上运行时,可能会发生这种情况。要开始它,我试过了

brew services start mongodb

它成功了。

编辑:根据关于自制软件的这个 PR 的讨论:https://github.com/Homebrew/homebrew/issues/30628

brew services 已弃用,我环顾四周,发现这些答案现在回答了这个问题:What is the correct way to start a mongod service on linux / OS X?

【讨论】:

  • 我收到此命令的错误:“未知命令:服务”
  • 'brew services' 不再受支持:github.com/Homebrew/homebrew/issues/32006
  • 我尝试了 sudo mongod 而不是 mongo,它开始了!要访问 mongo shell,我打开了新的 shell 窗口并编写了 mongo,它成功了!!您可以使用解决方案 on this blog 找到完整的错误跟踪
  • 我的 Mac OS X Yosemite 不再支持 brew 服务。 sudo mongod 启动了 mongodb,然后 mongo 命令开始工作。谢谢@Ali Raza Bhayani。
  • 感谢您的解决方案!! brew service 命令在我的 Mac OS X Sierra 中为我工作。
【解决方案2】:

我遇到了完全相同的问题,这里有一个明确的分步过程来避免这个错误。

步骤 1 - 安装(如果您已经安装了 MongoDB,请不要执行此步骤):

brew update
brew install mongodb

第 2 步 - 运行 Mongo 守护进程:

mkdir -p /data/db
sudo mongod

第 3 步 - 运行 Mongo Shell 界面:

mongo

在这个序列中,我能够运行mongo 命令而没有任何错误。我还详细介绍了错误跟踪及其解决方案on this blog

【讨论】:

【解决方案3】:

要解决您的问题,您需要按照使用“brew install mongodb”后 brew 提供的说明进行操作。

在登录时启动 mongodb:

ln -sfv /usr/local/opt/mongodb/*.plist ~/Library/LaunchAgents

那么现在加载mongodb:

launchctl load ~/Library/LaunchAgents/homebrew.mxcl.mongodb.plist

或者,如果您不想/不需要launchctl,您可以运行:

mongod --config /usr/local/etc/mongod.conf

您也许可以只运行最后一个命令,但它对我不起作用,我需要运行第二个命令。为了将来救我。我也刚刚运行了第一个命令。希望对您有所帮助!

编辑Hrishi 使用brew services mongodb start 的方法对我很有用。我认为他们应该将其包含在 mongo 文档中。

【讨论】:

  • 我使用了最后一个命令并在浏览器中访问了 localhost/27017,屏幕显示,“看起来您正试图在本机驱动程序端口上通过 HTTP 访问 MongoDB。”这似乎不正确......
  • Mongo 现在正在运行,对吗?就像您可以在 shell 中键入 mongo 一样,您不再收到连接被拒绝的消息?您不会从浏览器访问 mongo,而是希望从 cli 中使用它。
  • 不,在我输入 'mongod --config /usr/local/etc/mongod.conf' 后,shell 中不会执行任何命令,这是一个简单的空白提示。我在不使用自制软件的情况下重新停止并从网站下载 zip,将可执行文件移动到 /usr/local/bin,但现在我仍然收到相同的错误消息。
  • 是的,最后一条命令也为我挂了。我只运行前两个,你应该很好。当它挂起时,只需点击ctrl + c,然后再尝试mongo
  • 嗯...它仍然无法正常工作。我将在 mongoDB 论坛上发帖。感谢您的帮助。
【解决方案4】:

在另一个选项卡中,您可以使用以下命令启动 mongo shell

魔神

然后返回上一个选项卡并重试。如果您在设置 mongoshell 时遇到问题,请查看 mongo shell 上的此链接:http://docs.mongodb.org/manual/tutorial/manage-mongodb-processes/ 或者这个关于安装 mongodb 的链接: http://docs.mongodb.org/manual/tutorial/install-mongodb-on-os-x/

【讨论】:

  • 这是为我做的。在尝试运行 mongo 之前,我完全忽略了启动服务 mongod。谢谢!
【解决方案5】:

我在从命令行调用 mongod 时遇到了同样的问题。

我通过调用 sudo mongod 解决了这个问题。

【讨论】:

  • 不要以 root 身份运行服务。
【解决方案6】:

对于我在 osx 上,我不得不杀死旧的正在运行的实例,然后重新启动工作。

$>ps -aef | grep mongo
502  8047     1   0 11:52AM ??         0:00.23 /usr/local/opt/mongodb/bin/mongod --config /usr/local/etc/mongod.conf 

$>sudo kill 8047

$>sudo mongod

【讨论】:

    【解决方案7】:

    我有同样的错误,但根本原因不同。以为我会在这里发布解决方案,以防其他人遇到问题。在我运行 mongorestore -d foo dump/foo/ 时我的 Mac 未正确关闭后出现此错误。

    tl;dr:我通过从我的数据文件夹/usr/local/var/mongodb/ 中删除损坏的foo.ns 文件以及foo.0foo.1、...来解决此问题。然后我用brew services restart mongodb重启了mongo服务器,就恢复正常了。

    详细信息:即使在尝试通过 brew 或 launchctl 启动或重新启动 mongodb 服务后,我仍然收到错误消息。最后我跑了 mongod --dbpath /usr/local/var/mongodb 并看到该服务实际上并未启动,并且启动顺序包括以下错误: [initandlisten] bad .ns file: /usr/local/var/mongodb/foo.ns [initandlisten] User Assertion: 10079:bad .ns file length, cannot open database 我摆脱了坏的.ns 文件和其余的数据文件,下次我启动服务时我很高兴。

    【讨论】:

    • 我唯一的遗憾是我只有一个赞成票:所有其他答案都忽略了默认 brew configs 将 dbs 放入 /usr/local/var/mongodb 的事实!
    • Annnddd Mongo 又崩溃了,所以现在我不得不再次经历这个过程。幸好我赞成你的答案,所以我可以再次找到它:D
    【解决方案8】:

    对于在您的 mac 更新到 OS Catalina 后在这里寻找答案的任何人

    运行

    brew services start mongodb-community
    
    

    在这里找到更多信息:https://medium.com/@semmons245/arghhhh-thanks-to-the-catalina-os-update-this-now-needs-changing-987f416ebcbe

    【讨论】:

      【解决方案9】:

      我使用自制软件升级到 mongo 3.6 后出现此错误。

      日志/usr/local/var/log/mongodb/mongo.log 包含消息shutting down with code:62。此错误代码表示现有数据库太旧,无法使用当前版本的 mongo 运行。

      我在另一个SO question找到了2个解决方案:

      我选择升级。就我而言,这意味着我必须降级到 3.4,在 mongo 控制台中运行命令,然后再次升级。 Mongo 要求您一次升级一个主要版本,因此根据您之前的时间,可能会有额外的步骤。文档将为您提供指导。

      brew switch *brew services restart 命令使版本之间的切换相对轻松。

      【讨论】:

        【解决方案10】:

        如果您已经安装了 MongoDB,那么首先尝试以 sudo 用户身份运行 mongod,因为没有以超级用户身份运行 mongod,所以我遇到了这个问题。

        我已经在最底部粘贴了两个命令(mongodsudo mongod)的 o/p,你也可以检查一下,但是

        先试试这个

        sudo mongod
        

        不是这个

        mongod
        

        我通过依次运行以下命令在我的 MAC OS X Sierra 10.12.6 上安装了 MongoDB。

        brew update
        brew install mongodb --devel
        brew services start mongodb
        

        然后创建了一个目录,mongod 进程将向其中写入数据,这是可选的,因为 mongod 进程默认使用它,请参阅https://docs.mongodb.com/manual/tutorial/install-mongodb-on-os-x/ 这个有用的指南

        sudo mkdir -p /data/db
        

        终于启动mongod进程如下

        sudo mongod
        

        mongod(失败)和 sudo mongod(成功)命令在我的终端上的输出。 p>

        MacBook-Pro-2:appscheck admin$ mongod
        2017-12-10T08:12:06.166+0530 I CONTROL  [initandlisten] MongoDB starting : pid=2698 port=27017 dbpath=/data/db 64-bit host=MacBook-Pro-2.local
        2017-12-10T08:12:06.166+0530 I CONTROL  [initandlisten] db version v3.4.10
        2017-12-10T08:12:06.166+0530 I CONTROL  [initandlisten] git version: 078f28920cb24de0dd479b5ea6c66c644f6326e9
        2017-12-10T08:12:06.166+0530 I CONTROL  [initandlisten] OpenSSL version: OpenSSL 1.0.2n  7 Dec 2017
        2017-12-10T08:12:06.166+0530 I CONTROL  [initandlisten] allocator: system
        2017-12-10T08:12:06.166+0530 I CONTROL  [initandlisten] modules: none
        2017-12-10T08:12:06.166+0530 I CONTROL  [initandlisten] build environment:
        2017-12-10T08:12:06.166+0530 I CONTROL  [initandlisten]     distarch: x86_64
        2017-12-10T08:12:06.166+0530 I CONTROL  [initandlisten]     target_arch: x86_64
        2017-12-10T08:12:06.166+0530 I CONTROL  [initandlisten] options: {}
        2017-12-10T08:12:06.166+0530 I STORAGE  [initandlisten] exception in initAndListen: 20 Attempted to create a lock file on a read-only directory: /data/db, terminating
        2017-12-10T08:12:06.166+0530 I NETWORK  [initandlisten] shutdown: going to close listening sockets...
        2017-12-10T08:12:06.166+0530 I NETWORK  [initandlisten] shutdown: going to flush diaglog...
        2017-12-10T08:12:06.167+0530 I CONTROL  [initandlisten] now exiting
        2017-12-10T08:12:06.167+0530 I CONTROL  [initandlisten] shutting down with code:100
        
        
        MacBook-Pro-2:appscheck admin$ sudo mongod
        Password:
        2017-12-10T08:12:14.084+0530 I CONTROL  [initandlisten] MongoDB starting : pid=2700 port=27017 dbpath=/data/db 64-bit host=MacBook-Pro-2.local
        2017-12-10T08:12:14.084+0530 I CONTROL  [initandlisten] db version v3.4.10
        2017-12-10T08:12:14.084+0530 I CONTROL  [initandlisten] git version: 078f28920cb24de0dd479b5ea6c66c644f6326e9
        2017-12-10T08:12:14.084+0530 I CONTROL  [initandlisten] OpenSSL version: OpenSSL 1.0.2n  7 Dec 2017
        2017-12-10T08:12:14.084+0530 I CONTROL  [initandlisten] allocator: system
        2017-12-10T08:12:14.084+0530 I CONTROL  [initandlisten] modules: none
        2017-12-10T08:12:14.084+0530 I CONTROL  [initandlisten] build environment:
        2017-12-10T08:12:14.084+0530 I CONTROL  [initandlisten]     distarch: x86_64
        2017-12-10T08:12:14.084+0530 I CONTROL  [initandlisten]     target_arch: x86_64
        2017-12-10T08:12:14.084+0530 I CONTROL  [initandlisten] options: {}
        2017-12-10T08:12:14.084+0530 I STORAGE  [initandlisten] wiredtiger_open config: create,cache_size=7680M,session_max=20000,eviction=(threads_min=4,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-12-10T08:12:14.472+0530 I CONTROL  [initandlisten] 
        2017-12-10T08:12:14.472+0530 I CONTROL  [initandlisten] ** WARNING: Access control is not enabled for the database.
        2017-12-10T08:12:14.472+0530 I CONTROL  [initandlisten] **          Read and write access to data and configuration is unrestricted.
        2017-12-10T08:12:14.472+0530 I CONTROL  [initandlisten] ** WARNING: You are running this process as the root user, which is not recommended.
        2017-12-10T08:12:14.472+0530 I CONTROL  [initandlisten] 
        2017-12-10T08:12:14.472+0530 I CONTROL  [initandlisten] 
        2017-12-10T08:12:14.472+0530 I CONTROL  [initandlisten] ** WARNING: soft rlimits too low. Number of files is 256, should be at least 1000
        2017-12-10T08:12:14.560+0530 I FTDC     [initandlisten] Initializing full-time diagnostic data capture with directory '/data/db/diagnostic.data'
        2017-12-10T08:12:14.707+0530 I INDEX    [initandlisten] build index on: admin.system.version properties: { v: 2, key: { version: 1 }, name: "incompatible_with_version_32", ns: "admin.system.version" }
        2017-12-10T08:12:14.707+0530 I INDEX    [initandlisten]      building index using bulk method; build may temporarily use up to 500 megabytes of RAM
        2017-12-10T08:12:14.719+0530 I INDEX    [initandlisten] build index done.  scanned 0 total records. 0 secs
        2017-12-10T08:12:14.720+0530 I COMMAND  [initandlisten] setting featureCompatibilityVersion to 3.4
        2017-12-10T08:12:14.720+0530 I NETWORK  [thread1] waiting for connections on port 27017
        

        然后我打开新终端开始查询MongoDB,它工作了。

        MacBook-Pro-2:appscheck admin$ mongo
        MongoDB shell version v3.4.10
        connecting to: mongodb://127.0.0.1:27017
        MongoDB server version: 3.4.10
        Welcome to the MongoDB shell.
        For interactive help, type "help".
        For more comprehensive documentation, see
            http://docs.mongodb.org/
        Questions? Try the support group
            http://groups.google.com/group/mongodb-user
        Server has startup warnings: 
        2017-12-10T08:12:14.472+0530 I CONTROL  [initandlisten] 
        2017-12-10T08:12:14.472+0530 I CONTROL  [initandlisten] ** WARNING: Access control is not enabled for the database.
        2017-12-10T08:12:14.472+0530 I CONTROL  [initandlisten] **          Read and write access to data and configuration is unrestricted.
        2017-12-10T08:12:14.472+0530 I CONTROL  [initandlisten] ** WARNING: You are running this process as the root user, which is not recommended.
        2017-12-10T08:12:14.472+0530 I CONTROL  [initandlisten] 
        2017-12-10T08:12:14.472+0530 I CONTROL  [initandlisten] 
        2017-12-10T08:12:14.472+0530 I CONTROL  [initandlisten] ** WARNING: soft rlimits too low. Number of files is 256, should be at least 1000
        > show dbs;
        admin  0.000GB
        local  0.000GB
        > use practice
        switched to db practice
        >
        

        就是这样。

        【讨论】:

          【解决方案11】:

          我遇到了同样的问题,在查看日志文件时我看到了这个:

          {2019-03-09T11:57:32.136-0500 I STORAGE  [initandlisten] 
          exception in initAndListen: NonExistentPath: 
          Data directory /usr/local/var/mongodb not found., terminating}
          

          所以我创建了目录/usr/local/var/mongodb 发出 brew services restart mongodb 命令我能够打开 mongo 控制台。

          【讨论】:

            【解决方案12】:

            我的猜测是您在尝试通过“mongo”命令访问测试时没有正在运行的数据库。

            首先在终端中运行这个命令:

            mongod 
            

            然后打开另一个终端窗口并运行:

            蒙哥

            现在应该一切正常。

            【讨论】:

              【解决方案13】:

              我的类似错误通过在尝试运行 mongod 时删除“sudo rm /data/db/mongod.lock”文件得到解决。 现在你可以运行 mongod,然后运行 ​​mongo。

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 2011-08-02
                • 2014-09-28
                • 1970-01-01
                • 2023-01-10
                • 2017-04-10
                • 2019-08-07
                • 2012-09-24
                相关资源
                最近更新 更多