无法连接到mongodb errno:61连接被拒绝


91

我最近在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

1
您确定mongod服务正在运行吗?conf文件上有哪些配置选项?
ffflabs

您是否使用sudo apt-get进行安装?我已经读到有关人们遇到此问题的信息...尝试通过MongoDB网站删除并下载。
哈桑

我安装了自制软件,官方网站上的说明未指出我需要设置.config文件。我只是下载并运行了“ mongoose”命令,导致了上述错误。
迈克尔

检查您的日志,通常情况下/var/logs/mongodb如果我没有记错的话。
AlbertEngelB 2014年

我通过下载重新安装并解压缩了文件。我正在运行“ mongo”,仍然收到相同的错误。
2014年

Answers:


277

当mongodb服务未在Mac上运行时,可能会发生这种情况。首先,我尝试

brew services start mongodb

而且有效。

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

brew services已弃用,我环顾四周,发现这些答案现在可以回答以下问题:在linux / OS X上启动mongod服务的正确方法是什么?


8
我收到此命令错误:“未知命令:服务”
ZeMoon 2014年

7
'brew services'不再受支持:github.com/Homebrew/homebrew/issues/32006
Vitaly

7
我尝试了sudo mongod而不是mongo,它开始了!要访问mongo shell,我打开了一个新的shell窗口并编写了mongo,它起作用了!!您可以在此博客上
Ali Raza Bhayani 2015年

1
我的Mac OS X Yosemite不再支持Brew服务。sudo mongod启动mongodb,然后执行mongo命令。感谢@Ali Raza Bhayani。
psun

2
感谢您的解决方案!!brew service命令对我的Mac OS X Sierra有用。
Jcc.Sanabria

32

我遇到了完全相同的问题,这是一个清晰的逐步过程,以避免出现此错误。

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

brew update
brew install mongodb

第2步 -运行Mongo Daemon:

mkdir -p /data/db
sudo mongod

第3步 -运行Mongo Shell界面:

mongo

按照这个顺序,我可以mongo无任何错误地运行命令。我还在此博客上详细介绍了错误跟踪及其解决方案。



这一次对我
有用

这是赢得战斗并输掉战争的好方法。不要以root用户身份运行服务。
Miles Erickson '18

22

为了解决您的问题,您需要遵循使用“ 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。” 这似乎并不正确……
Michael

Mongo现在正在运行,对吗?正如您可以在shell中键入mongo一样,您不再收到拒绝连接的消息了吗?您不会从浏览器访问mongo,而是要从cli使用它。
2014年

不,我输入“ mongod --config /usr/local/etc/mongod.conf”后,shell中没有命令会执行。这很简单,是一个空白提示。我没有使用自制软件就重新安装,并从网站上下载了zip,将可执行文件移至/ usr / local / bin,但是现在我仍然收到相同的错误消息。
2014年

是的,最后一个命令也挂在我身上。我只运行前两个,你应该很好。挂起时,只需按一下ctrl + c然后尝试mongo
2014年

嗯...仍然无法正常工作。我将发布在mongoDB论坛上。谢谢。
2014年

16

在另一个标签中,您可以使用以下命令启动mongo shell

蒙哥

然后返回上一个选项卡,然后重试。如果您遇到问题设置您的mongoshell,检查出蒙戈外壳此链接:http://docs.mongodb.org/manual/tutorial/manage-mongodb-processes/ 或上安装MongoDB的链接: HTTP:/ /docs.mongodb.org/manual/tutorial/install-mongodb-on-os-x/


这为我做到了。在尝试运行mongo之前,我完全忽略了启动服务mongod的过程。谢谢!
Matt Welander 2014年

7

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

我改为致电解决此问题sudo mongod


不要以root用户身份运行服务。
Miles Erickson '18

4

我有相同的错误,但根本原因不同。以为我会在这里发布解决方案,以防其他人遇到问题。我在运行时Mac不当关闭了,我得到了这个错误mongorestore -d foo dump/foo/

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

详细信息:即使尝试通过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文件和其余数据文件,而下次我启动该服务时,我就很好了。


1
我唯一的遗憾是我只有一个提议:其他所有答案都忽略了默认的brew配置将dbs放在/ usr / local / var / mongodb中的事实!
premiumFrye

1
Annnddd Mongo再次崩溃了,所以现在我不得不再次经历这个过程。好东西,我赞成您的回答,所以我可以再次找到它:D
premiumFrye

3

对我来说,在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

1

我用自制软件升级到mongo 3.6后,收到了此错误。

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

我在另一个SO问题中找到了2个解决方案 :

  • 删除数据库文件夹(/usr/local/var/mongodb
  • 或按照升级步骤

我选择升级。就我而言,这意味着我必须降级到3.4,在mongo控制台中运行命令,然后再次升级。Mongo要求您一次升级一个主要版本,因此,取决于您回溯的时间,可能还会有其他步骤。该文档将指导您。

brew switch*brew services restart命令进行版本相对无痛之间交换。



0

如果您已经安装了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(成功)命令的输出。

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
>

而已。


0

我遇到了同样的问题,在查看日志文件时,我看到了以下内容:

{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服务重启mongodb命令,我可以打开mongo控制台。


-1

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

首先在终端中运行以下命令:

mongod 

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

蒙哥

现在一切都应该正常工作。


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.