database MongoDB:无法连接到 127.0.0.1:27017,原因:errno:61 连接被拒绝

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/26612648/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-09-08 07:50:09  来源:igfitidea点击:

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

mongodbosx-mavericksdatabase

提问by Ernesto Rojas

My problem is similar to other inputs and suggestions on this site, but none has helped me. After installing MongoDB, has not started because the database is not running.

我的问题与本网站上的其他输入和建议类似,但没有一个对我有帮助。安装MongoDB后,一直没有启动,因为数据库没有运行。

First try to run mongo and I answered this:

首先尝试运行 mongo,我回答了这个:

Mac-Pro-de-User: ~ user $ mongo 
MongoDB shell version: 2.6.4 
connecting to: test 
2014-10-28T10: 47: 08713-0700 warning: Failed to connect to 127.0.0.1:27017, reason: errno: 61 Connection refused 
2014-10-28T10: 47: 08713-0700 Error: could not connect to server 127.0.0.1:27017 (127.0.0.1) Attempt connection failed at src / mongo / shell / mongo.js: 146 
exception: connect failed 

Then try to check the mongod and I answered this:

然后尝试检查mongod,我回答了这个:

Mac-Pro-de-User: ~ user $ mongod 
mongod --help for help and startup options 
2014-10-28T10: 59: 34485-0700 [initandlisten] MongoDB starting: pid = 926 port = 27017 dbpath = / data / db host = 64-bit Mac-Pro-de-Ernesto.local 
2014-10-28T10: 59: 34485-0700 [initandlisten] 
2014-10-28T10: 59: 34485-0700 [initandlisten] ** WARNING: soft rlimits too low. Number of files is 256, Should be at Least 1000 
2014-10-28T10: 59: 34485-0700 [initandlisten] db version v2.6.4 
2014-10-28T10: 59: 34485-0700 [initandlisten] git version: 3a830be0eb92d772aa855ebb711ac91d658ee910 
2014-10-28T10: 59: 34485-0700 [initandlisten] Build info: Darwin bs-osx108-4 12.5.0 Darwin Kernel Version 12.5.0: Sun Sep 29 13:33:47 PDT 2013; root: xnu-2050.48.12 ~ 1 / x86_64 RELEASE_X86_64 BOOST_LIB_VERSION = 1_49 
2014-10-28T10: 59: 34485-0700 [initandlisten] allocator: system 
2014-10-28T10: 59: 34485-0700 [initandlisten] options: {} 
2014-10-28T10: 59: 34486-0700 [initandlisten] journal dir = / data / db / journal 
2014-10-28T10: 59: 34486-0700 [initandlisten] recover: no journal files present, no recovery needed 
2014-10-28T10: 59: 34500-0700 [FileAllocator] allocating new datafile /data/db/local.ns, filling zeroes With ... 
2014-10-28T10: 59: 34500-0700 [FileAllocator] creating directory / data / db / _tmp 
2014-10-28T10: 59: 34512-0700 [FileAllocator] done allocating datafile /data/db/local.ns, size: 16MB, took 0.011 secs 
2014-10-28T10: 59: 34726-0700 [FileAllocator] allocating new datafile /data/db/local.0, filling zeroes With ... 
2014-10-28T10: 59: 35398-0700 [FileAllocator] done allocating datafile /data/db/local.0, size: 64MB, took 0.671 secs 
2014-10-28T10: 59: 35695-0700 [initandlisten] build index on: local.startup_log properties: {v: 1, key: {_id: 1}, name: "_id_" ns "local.startup_log"} 
2014-10-28T10: 59: 35695-0700 [initandlisten] index added to empty collection 
2014-10-28T10: 59: 35695-0700 [initandlisten] Local command $ cmd command. Create {create: "startup_log" size: 10485760, capped: true} ntoreturn: 1 KeyUpdates: 0 numYields: 0 reslen: 37 1194ms 
2014-10-28T10: 59: 35695-0700 [initandlisten] waiting for connections on port 27017 
2014-10-28T11: 00: 34516-0700 [clientcursormon] mem (MB) res: 33 virt: 2653 
2014-10-28T11: 00: 34516-0700 [clientcursormon] mapped (incl journal view): 160 
2014-10-28T11: 00: 34516-0700 [clientcursormon] connections: 0 

Then try again to connect and spend some time, and again says the same:

然后再次尝试连接并花费一些时间,并再次说相同的:

2014-10-28T11: 05: 34589-0700 [clientcursormon] mem (MB) res: 33 virt: 2653 
2014-10-28T11: 05: 34589-0700 [clientcursormon] mapped (incl journal view): 160 
2014-10-28T11: 05: 34589-0700 [clientcursormon] connections: 0

And so on. If you can help would greatly appreciate it.

等等。如果您能提供帮助,将不胜感激。

PS: There is already the / data / db with 777 permissions, and I'm using OSX Mavericks 10.9.5

PS:已经有 777 权限的 /data/db,我使用的是 OSX Mavericks 10.9.5

回答by Adam Comerford

Are you running all of these commands in the same terminal as separate actions as your timestamps suggest? (if not, I would expect to see overlap between the failures and logs in order to diagnose properly).

您是否按照时间戳建议在同一终端中运行所有这些命令作为单独的操作?(如果没有,我希望看到故障和日志之间的重叠,以便正确诊断)。

If so, then what you are doing is as follows:

如果是这样,那么你正在做的事情如下:

  1. Starting a shell, attempting to connect to a non-running database (connection refused)
  2. Starting the database, seeing 0 connections in the logs
  3. Stopping the database (Ctrl-C or similar), starting a shell, fails to connect again because database has been shut down
  4. Starting the database, seeing 0 connections in logs
  5. repeat
  1. 启动一个 shell,试图连接到一个非运行的数据库(连接被拒绝)
  2. 启动数据库,在日志中看到 0 个连接
  3. 停止数据库(Ctrl-C 或类似),启动 shell,由于数据库已关闭而无法再次连接
  4. 启动数据库,在日志中看到 0 个连接
  5. 重复

The database needs to be running concurrently with the shell so you can connect to it. Hence you should start the mongodprocess in one terminal, leave it running, and then open a new terminal (or tab) and run the mongocommand to connect to the still running database. The other option is to run mongodas a daemon, which will allow you to run the mongocommand in the same terminal once it returns.

数据库需要与 shell 同时运行,以便您可以连接到它。因此,您应该mongod在一个终端中启动该进程,让它继续运行,然后打开一个新终端(或选项卡)并运行mongo命令以连接到仍在运行的数据库。另一种选择是作为 daemon运行mongod,这将允许您mongo在返回后在同一终端中运行该命令。

Note: you should never have a folder with 777 permissions, it is not required and is a significant security risk.

注意:您不应该拥有具有 777 权限的文件夹,它不是必需的,并且存在重大安全风险。

回答by J.Jai

Just try this command.

试试这个命令。

sudo chown mongodb /tmp/mongodb-27017.sock

须藤 chown mongodb /tmp/mongodb-27017.sock

And

sudo service mongod restart

须藤服务 mongod 重启

回答by Raja Parivesh

Fixed!

固定的!

The reason was the dbpath variable in /etc/mongodb.conf. Previously, I was using mongodb 1.8, where the default value for dbpath was /data/db. The upstart job mongodb(which comes with mongodb-10gen package) invokes the mongod with --config /etc/mongodb.conf option.

原因是 /etc/mongodb.conf 中的 dbpath 变量。以前,我使用的是 mongodb 1.8,其中 dbpath 的默认值是 /data/db。新贵工作 mongodb(随 mongodb-10gen 包一起提供)使用 --config /etc/mongodb.conf 选项调用 mongod。

As a solution, I only had to change the owner of the /data/db directory recursively.

作为解决方案,我只需要递归地更改 /data/db 目录的所有者。

Like this: Go to"/data" location in the terminaland then type

像这样:转到终端中的“/data”位置,然后键入

sudo chown -R <username>:foldername

sudo chown -R <username>:foldername

For example:

例如:

sudo chown -R raja db/

sudo chown -R raja db/

回答by geekgarage

Hello just check if you created the /data/db path and if you did then give 755 permission with chmod.

您好,只需检查您是否创建了 /data/db 路径,如果您创建了,则使用 chmod 授予 755 权限。