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
MongoDB : Failed to connect to 127.0.0.1:27017, reason: errno:61 Connection refused
提问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:
如果是这样,那么你正在做的事情如下:
- Starting a shell, attempting to connect to a non-running database (connection refused)
- Starting the database, seeing 0 connections in the logs
- Stopping the database (Ctrl-C or similar), starting a shell, fails to connect again because database has been shut down
- Starting the database, seeing 0 connections in logs
- repeat
- 启动一个 shell,试图连接到一个非运行的数据库(连接被拒绝)
- 启动数据库,在日志中看到 0 个连接
- 停止数据库(Ctrl-C 或类似),启动 shell,由于数据库已关闭而无法再次连接
- 启动数据库,在日志中看到 0 个连接
- 重复
The database needs to be running concurrently with the shell so you can connect to it. Hence you should start the mongod
process in one terminal, leave it running, and then open a new terminal (or tab) and run the mongo
command to connect to the still running database. The other option is to run mongod
as a daemon, which will allow you to run the mongo
command 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 权限。