天道酬勤,学无止境

无法连接到 MongoDB errno:61(Cannot connect to MongoDB errno:61)

问题

我使用 macports 安装了 MongoDB 并尝试运行mongo命令以启动 mongo shell。 我收到以下错误:

warning: 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

然后我运行mongod并收到以下错误:

$ [initandlisten] MongoDB starting : pid=11984 port=27017 dbpath=/data/db 64-bit host=Nikitas-MacBook-Air.local
$ [initandlisten] 
$ [initandlisten] ** WARNING: soft rlimits too low. Number of files is 256, should be at least 1000
$ [initandlisten] db version v2.6.0
$ [initandlisten] git version: nogitversion
$ [initandlisten] build info: Darwin tennine-slave.macports.org 13.1.0 Darwin Kernel Version 
13.1.0: Thu Jan 16 19:40:37 PST 2014; root:xnu-2422.90.20~2/RELEASE_X86_64 x86_64 BOOST_LIB_VERSION=1_55
$ [initandlisten] allocator: tcmalloc
$ [initandlisten] options: {}
$ [initandlisten] exception in initAndListen: 10296 
*********************************************************************
 ERROR: dbpath (/data/db) does not exist.
 Create this directory or give existing directory in --dbpath.
 See http://dochub.mongodb.org/core/startingandstoppingmongo
*********************************************************************
, terminating
$ [initandlisten] dbexit: 
$ [initandlisten] shutdown: going to close listening sockets...
$ [initandlisten] shutdown: going to flush diaglog...
$ [initandlisten] shutdown: going to close sockets...
$ [initandlisten] shutdown: waiting for fs preallocator...
$ [initandlisten] shutdown: lock for final commit...
$ [initandlisten] shutdown: final commit...
$ [initandlisten] shutdown: closing all files...
$ [initandlisten] closeAllFiles() finished
$ [initandlisten] dbexit: really exiting now

我在哪里创建根目录下的/data/db目录? 当我运行mongo时,第二个错误会是errno:61的原因吗?

回答1

是的,您将在根目录下创建/data/db 。 MongoDB 文档建议使用以下命令在 OS X mkdir -p /data/db

关于你的第二个问题,也是。 由于 Mongo 守护程序无法启动且未在侦听,因此您会收到连接错误。

MongoDB 默认为/data/db为数据目录。 您可以使用mongod命令上的--dbpath选项覆盖默认值(也在上面的文档链接上)。

回答2

我遇到了类似的问题。 我在此博客上详细介绍了错误跟踪和解决方案这是我为解决此问题所做的分步过程:

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

brew update
brew install mongodb

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

mkdir -p /data/db
sudo mongod

第 3 步 - 运行 Mongo Shell 界面:

mongo

在这个序列中,我能够运行 mongo 命令而没有任何错误。

回答3
** WARNING: soft rlimits too low. Number of files is 256, should be at least 1000

您可以在 /etc/bashrc 中添加一行,警告将消失。

ulimit -S -n 1024

使用chown -R {user} /data/db到的所有者更改/data/db从根到自己。 然后你可以通过mongo启动 mongo shell,不需要使用sudo mongo

受限制的 HTML

  • 允许的HTML标签:<a href hreflang> <em> <strong> <cite> <blockquote cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <h2 id> <h3 id> <h4 id> <h5 id> <h6 id>
  • 自动断行和分段。
  • 网页和电子邮件地址自动转换为链接。

相关推荐
  • 无法连接到127.0.0.1:27017,原因:errno:111连接被拒绝(Failed to connect to 127.0.0.1:27017, reason: errno:111 Connection refused)
    问题 在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 我该如何纠正这是有人遇到过同样的问题。 回答1 运行以下命令: sudo rm /var/lib/mongodb/mongod.lock sudo service mongod restart 与MongoDB errno 111的连接被拒绝 苹果系统: rm /usr/local/var/mongodb/mongod.lock sudo service
  • 无法连接到在Docker容器中运行的mongoDB(Unable to connect to mongoDB running in docker container)
    问题 遵循以下示例:https://docs.docker.com/engine/examples/mongodb/ 当尝试使用以下命令连接到mongoDB时: mongo ip:27017 (其中ip是boot2docker ip的名称)+ docker ps的端口号: 27017 /台或-P 0.0.0.0:49155->27017/tcp 无论哪种方式,我都会收到以下错误: 警告:无法连接到ip:27017,原因:errno:61连接被拒绝错误:无法连接到服务器ip:27017(ip),连接尝试在src / mongo / shell / mongo.js:148失败,例外:连接失败 回答1 如果您指定了正确的端口,但仍无法连接到在docker中运行的mongodb(如我),请确保您在连接URL中使用了服务名(或容器名),例如mongodb://mongodb_service:27017/mydb ,这是在您docker-compose.yml定义的: services: mongodb_service: image: mongo 我使用的是hostname值,这不是正确的操作。 您可以通过在“ Aliases部分中docker inspect mongodb_service来验证这一点。 回答2 我使用的是27017端口而不是49155(Doh,端口转发) 0.0.0.0
  • Cannot connect to MongoDB errno:61
    I installed MongoDB using macports and tried running the mongo command in order to start the mongo shell. I received the following errors: warning: 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 I then ran mongod and received the following error: $ [initandlisten] MongoDB starting : pid=11984 port=27017 dbpath=/data/db 64-bit host=Nikitas-MacBook-Air.local $ [initandlisten] $ [initandlisten] ** WARNING: soft rlimits too low. Number of files is 256
  • Cannot connect to mongodb errno:61 Connection refused
    I recently installed mongodb-2.6.0 with Homebrew. After successfully installed, I tried to connect using the mongo command. I am receiving the following errors which do not allow me to connect: 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
  • 无法验证到mongo,“验证失败”(Cannot authenticate into mongo, “auth fails”)
    问题 我已经按照以下说明为mongo创建了一个管理员用户: http://docs.mongodb.org/manual/tutorial/add-user-administrator/ 从mongo客户端看来,我可以进行身份​​验证: > use admin switched to db admin > db.auth('admin','SECRETPASSWORD'); 1 > 但是我无法以其他任何方式连接。 例如: mongo -u管理员-p密码 给出错误: JavaScript execution failed: Error: 18 { code: 18, ok: 0.0, errmsg: "auth fails" } at src/mongo/shell/db.js:L228 我在etc/mongod.conf有auth = true 。 我想念什么? 回答1 身份验证在数据库级别进行管理。 当您尝试使用数据库连接到系统时,mongo实际上会检查您在集合<database>.system.users提供的凭据。 因此,基本上,当您尝试连接到“ test”时,它将在test.system.users查找凭据,并返回错误,因为它找不到它们(因为它们存储在admin.system.users )。 拥有从所有数据库读取和写入的权利并不意味着您可以直接连接到它们。
  • 无法使用机器ip连接到mongodb(Cannot connect to mongodb using machine ip)
    问题 使用homebrew安装了Mongo 。 如果我在shell上键入mongo ,它将连接到test 。 但是当我键入本地计算机的ip address而不是127.0.0.1 mongo --host 192.168.1.100 --verbose 它给我错误信息 MongoDB shell version: 2.4.6 Fri Aug 23 15:18:27.552 versionArrayTest passed connecting to: 192.168.1.100:27017/test Fri Aug 23 15:18:27.579 creating new connection to:192.168.1.100:27017 Fri Aug 23 15:18:27.579 BackgroundJob starting: ConnectBG Fri Aug 23 15:18:27.580 Error: couldn't connect to server 192.168.1.100:27017 at src/mongo/shell/mongo.js:147 Fri Aug 23 15:18:27.580 User Assertion: 12513:connect failed 尝试通过注释bind_ip或将ip地址从127.0.0.1更改为0.0.0.0来修改mongo
  • 获取“socket.error: [Errno 61] 连接被拒绝”python paramiko(Getting “socket.error: [Errno 61] Connection refused” python paramiko)
    问题 尝试连接到主机以将本地文件复制到主机服务器时出现错误连接拒绝错误。 但是远程连接到服务器没有任何问题。 host = "9.29.22.222" username = "XXX" password = "XXX" local_path = "/Users/samuelhii/Desktop/file.txt" remote_path = "C:\Program Files (x86)\file.txt" s = paramiko.SSHClient() s.set_missing_host_key_policy(paramiko.AutoAddPolicy()) s.connect(host,22,username,password) sftp = s.open_sftp() sftp.put(local_path,remote_path) 回答1 连接被服务器拒绝。 这可能是由与 Python 编程无关的几个原因引起的: 防火墙 SSH 服务配置为不接受来自您 IP 的请求坏主机ip … (还有很多) 检查您是否可以使用普通的SSH客户端与此主机/用户/密码组合进行连接。
  • 无法连接到 mongodb 错误:无法连接到 src/mongo/shell/mongo.js:L112 处的服务器 127.0.0.1:27017(Unable to connect to mongodb Error: couldn't connect to server 127.0.0.1:27017 at src/mongo/shell/mongo.js:L112)
    问题 当我尝试连接到 mongo db 时,我总是收到如下错误。 MongoDB shell 版本:2.4.3 连接到:test Fri Apr 26 14:31:46.941 JavaScript 执行失败:错误:无法连接到服务器 127.0.0.1:27017 在 src/mongo/shell/mongo.js:L112 异常:连接失败 我尝试了 stackoverflow 中列出的各种解决方案并尝试了以下命令,但没有任何效果。 1) 须藤 rm /var/lib/mongodb/mongod.lock // 表示位于此位置的此类文件。 2) sudo 服务 mongodb 启动 // 错误:sudo:服务:找不到命令 3) 我已经确定在那个端口没有其他东西在运行。 4)甚至尝试卸载并再次安装它。 5) 也试过 kill pid 回答1 同样的错误,这对我有用: sudo mongod --repair 其次是 sudo mongod (忘记服务并开始) 然后在不同的选项卡/终端上: mongo 回答2 首先启动mongod服务器 mongod 打开另一个终端窗口 启动 mongo shell mongo 回答3 这是由于Mongodb的锁定须藤rm /var/lib/mongodb/mongod.lock 须藤服务 mongodb 重启 回答4
  • 如何将Robomongo连接到MongoDB(How to connect Robomongo to MongoDB)
    问题 我的运行系统中有MongoDB和Robomongo,并且我使用Robomongo作为客户端。 我已经将MongoDB安装在要用作服务器的其他系统上,并且我想将系统的Robomongo(作为客户端)连接到另一个系统(服务器)上的MongoDB。 我应该遵循什么步骤来达到相同的目的? 我正在使用计算机名称,因为系统的IP地址不是静态的。 但是,即使我使用系统的IP地址,也会出现相同的错误: 连接失败,无法连接无法连接到服务器W7IN05200067D:27017“ 我直接连接到它,并且没有使用任何身份验证。 回答1 我能够使用连接字符串将Robomongo连接到在Mongo Labs上运行的MongoDB的远程实例,如下所示: 下载最新版本的Robomongo。 我从这里下载了0.9 RC6。 从连接字符串中,如下填充服务器地址和端口号。 0 在身份验证选项卡下,按如下所示填充数据库名称,用户名和密码。 0 测试连接。 0 0 回答2 注意:注释bind_ip会使您的系统容易受到安全漏洞的攻击。 请参阅“安全检查表” 。 添加更多的IP地址比向所有设备开放系统是一个更好的主意。 您需要编辑/etc/mongod.conf文件的bind_ip变量,以包括正在使用的计算机的IP,或者完全删除它。 我能够使用以下mongod.conf文件进行连接。 我注释掉bind_ip和未注释的端口
  • Django Celery - 无法连接到 amqp://guest@127.0.0.8000:5672//(Django Celery - Cannot connect to amqp://guest@127.0.0.8000:5672//)
    问题 我正在尝试设置 Django-Celery。 我正在学习教程 http://docs.celeryproject.org/en/latest/django/first-steps-with-django.html 当我运行 $ python manage.py celery worker --loglevel=info 我得到 [Tasks] /Users/msmith/Documents/dj/venv/lib/python2.7/site-packages/djcelery/loaders.py:133: UserWarning: Using settings.DEBUG leads to a memory leak, never use this setting in production environments! warnings.warn('Using settings.DEBUG leads to a memory leak, never ' [2013-08-08 11:15:25,368: WARNING/MainProcess] /Users/msmith/Documents/dj/venv/lib/python2.7/site-packages/djcelery/loaders.py:133: UserWarning: Using settings
  • 无法在heroku上使用node.js连接到mongolab(can't connect to mongolab with node.js on heroku)
    问题 我在使heroku上的mongolab与node.js和mongodb一起工作时遇到麻烦。 我已经阅读了其他问题,例如如何使用MongoLab在Heroku上设置MongoDB数据库? 以及如何在Node.js Web应用程序中管理MongoDB连接? 但我仍然无法建立连接。 在日志中显示[错误:无法连接到...] 我已经从MONGOLAB_URI进程环境中获取了数据库,主机和端口,我有以下代码: var mongoUri = mongodb://heroku_app17328644:{password}@ds037518.mongolab.com //taken from process.env.MONGOLAB_URI var host = 'mongodb://heroku_appXXXXXX:{password}@ds037518.mongolab.com'; var port = '37518'; var database = 'heroku_appXXXXXX'; Provider.db = new Db(database, new Server(host, port, { safe: true }, { auto_reconnect: true }, {})); Provider.db.open(function(err, db){ console.log(db
  • MongoNetworkError:首次连接时无法连接到服务器[localhost:27017] [MongoNetworkError:连接ECONNREFUSED 127.0.0.1:27017](MongoNetworkError: failed to connect to server [localhost:27017] on first connect [MongoNetworkError: connect ECONNREFUSED 127.0.0.1:27017])
    问题 我是nodeJS的新手,通过关注youtube上的预告片开始学习,直到一切顺利,直到我添加了connect函数(如果mongodb, mongo.connect("mongodb://localhost:27017/mydb") 当我在cmd(节点启动应用)上运行代码时,出现以下错误, MongoNetworkError: failed to connect to server [localhost:27017] on first connect [MongoNetworkError: connect ECONNREFUSED 127.0.0.1:27017] 有人可以解释一下我错过了哪一步吗? 我的代码: var express = require("express"); var MongoClient = require('mongodb'); var url = "mongodb://localhost:27017/mydb"; var webService = require("./webService"); var server = express(); MongoClient.connect(url, function (err, db) { if (err) throw err; console.log("Database created!"); db
  • mongodb 无法连接到服务器(mongodb could not connect to server)
    问题 我是 MongoDB 的新手。 我正在尝试从我的工作机器连接到我的远程 mongo 数据库(我尝试了 mongohq 和 mongolab)。 我收到下面列出的错误。 当我从我的家用机器运行相同的命令时,它运行良好并且确实连接以删除 mongo 数据库。 我不确定我的工作机器上出了什么问题,但我想修复它。 谢谢你的帮助。 MongoDB shell version: 2.4.9 connecting to: linus.mongohq.com:10097/mydb Thu Jan 16 04:16:02.689 Error: couldn't connect to server linus.mongohq.com:10097 at src/mongo/shell/mongo.js:147 exception: connect failed 回答1 根据问题评论,您的 mongo shell 客户端无法连接到 mongo 实例。 假设您的互联网连接良好,失败的最常见原因是您的网络上的端口被阻止。 默认情况下,某些 ISP 会自动阻止这些端口,作为对不需要打开这些端口的用户的额外安全保护。 联系您的 ISP 或网络管理员,他们应该能够帮助您。
  • Errr 'mongo.js:L112 错误:无法连接到服务器 127.0.0.1:27017 在 src/mongo/shell/mongo.js:L112'(Errr 'mongo.js:L112 Error: couldn't connect to server 127.0.0.1:27017 at src/mongo/shell/mongo.js:L112')
    问题 我无法连接到 MongoDB。 在 Ubuntu 中它可以工作,但我现在在 CentOS 中工作。 这是错误消息: MongoDB 外壳版本:2.4.2 连接到:测试周六 4 月 20 日 07:22:09.390 JavaScript 执行失败:错误:无法在 src/mongo/shell/mongo.js:L112 连接到服务器 127.0.0.1:27017 异常:连接失败 我尝试删除mongod.lock文件,但它不起作用。 回答1 尝试删除 /var/lib/mongodb/mongod.lock 并重新启动 mongdo 服务 sudo rm /var/lib/mongodb/mongod.lock sudo service mongodb restart 回答2 如果您运行的是 Ubuntu,则文件夹所有权存在问题。 运行这些命令: 停止MongoDB服务sudo service mongodb stop 删除 MongoDB 锁定文件sudo rm /var/lib/mongodb/mongod.lock 将所有权从 root 更改为 MongoDB 路径sudo chown -R mongodb:mongodb /var/lib/mongodb/ 启动MongoDB服务sudo service mongodb start 测试 mongo 应用程序mongo
  • 无法将猫鼬连接到地图集(Fail to connect Mongoose to Atlas)
    问题 我总是连接到“ admin”数据库,这是一个固定的错误。 使用Mongoose 5.0.6 MongoDb 3.6并尝试连接到Atlas。 我的问题是,Mongoose 5.0.6依赖哪个驱动程序? 我怎么知道猫鼬什么时候可以解决这个问题? 在另一个方向上,有没有一种方法可以与MongoDB连接,然后与Mongoose一起使用此连接? 干杯 回答1 基本上,您应该尝试使用您的url链接进行连接,并在mongoose connect方法上指定数据库名称,以便您的集群链接为: mongodb+srv://userName:Passwrod@clustor.mongodb.net/ 并且您的数据库名称是: testDB 那么您应该按如下所示调用mongoose.connect方法: mongoose.connect('mongodb+srv://userName:Passwrod@cluster.mongodb.net/', {dbName: 'testDB'}); 回答2 当您将此连接字符串用于(MongoShell 3.6+)时,建立连接: var connDB = "mongodb+srv://<username>:<password>@cluster-fax0w.mongodb.net/test" 但是,如果不在mongoose.connect()中输入DBName
  • Mongodb:无法连接到127.0.0.1:27017,原因:errno:10061(Mongodb: Failed to connect to 127.0.0.1:27017, reason: errno:10061)
    问题 这是我的mongod.cfg文件: bind_ip = 127.0.0.1 dbpath = C:\mongodb\data\db logpath = C:\mongodb\log\mongo-server.log verbose=v 这是我的mongod服务命令: mongod -f c:\mongodb\mongod.cfg --install 我已经大约一个星期前安装了MongoDB,并且一切正常,但是今天当我运行mongo命令时,出现以下错误: Failed to connect to 127.0.0.1:27017, reason: errno:10061 No connection could be made because the target machine actively refused it 我该如何解决? 我使用Windows 8.1 解决方案: 我忘了用以下命令启动mongodb服务: net start mongodb 改进的解决方案: 1)将目录更改为根驱动器C:\ ,然后在admin cmd提示符窗口中键入以下命令, C:\mongodb\bin\mongod.exe --config c:\mongodb\mongod.cfg --install 2)然后输入net start MongoDB之后您将看到以下消息: "The Mongo DB
  • 无法连接到mongolab,出现MongoError:验证失败(Unable to connect to mongolab, Getting MongoError: auth failed)
    问题 我最近在mongoLab中创建了一个帐户。当我尝试使用以下语句连接到数据库时。 var mongoose = require('mongoose'); mongoose.connect('mongodb://mk:12345@ds047742.mongolab.com:47742/mkdb'); 我总是遇到以下错误 MongoError: auth failed at Function.MongoError.create (/Users/a042292/Desktop/start/node_modules/mongoose/node_modules/mongodb/node_modules/mongodb-core/lib/error.js:31:11) at /Users/a042292/Desktop/start/node_modules/mongoose/node_modules/mongodb/node_modules/mongodb-core/lib/topologies/server.js:793:66 at Callbacks.emit (/Users/a042292/Desktop/start/node_modules/mongoose/node_modules/mongodb/node_modules/mongodb-core/lib/topologies
  • 如何使用 pymongo 连接到现有的文档集合/数据库?(How do I use pymongo to connect to an existing document collection/db?)
    问题 在命令行上,这有效: $ mongo > show dbs mydatabase 1.0GB 但是,这不会: $ python >>> import pymongo >>> connection = pymongo.MongoClient() >>> connection.mydatabase.find() 我在这里通读了文档: http://api.mongodb.org/python/current/tutorial.html 但不明白如何... 连接到现有数据库(使用 pymongo) 查询 mongodb 连接中存在哪些数据库。 为什么我不能访问我的数据库? 回答1 连接到现有数据库 import pymongo from pymongo import MongoClient connection = MongoClient() db = connection.mydatabase 列出现有数据库 import pymongo from pymongo import MongoClient connection = MongoClient() connection.database_names() 回答2 show dbs和find()是完全不同的命令,因此您无法比较两者。 connection.mydatabase.find() 实际上什么都不做
  • 通过浏览器连接到mongodb吗?(Connecting to mongodb through the browser?)
    问题 我正在阅读mongodb指南,但我没有得到: mongodb://fred:foobar@localhost 它说我可以通过网络浏览器连接到mongodb。 我已经尝试过了,但是没有用。 Safari / Firefox无法识别mongodb协议。 我为什么要这样做呢? mongodb服务器不只是用于通过命令行连接吗? 端口27017和28017有什么区别? 我应该通过http还是mongodb协议进行连接? 回答1 当启动mongod(MongoDB守护程序)时,默认情况下它将开始在两个端口上侦听。 27017 :各种MongoDB驱动程序访问的默认端口。 28017 :用于处理HTTP请求并提供一些常规监视的端口。 您列出的mongodb://fred:foobar@localhost实际代表了这一点: mongodb://fred:foobar@localhost:27017 ,这是MongoDB驱动程序的访问协议。 您看到的另一个“事物”是端口28017。(默认情况下)这只是该服务器上mongod实例所发生情况的概述。 从Web浏览器对此端口发出的请求将显示服务器概述的HTML输出。 如果您使用其他端口号(例如:7777 )启动mongod ,则“ monitor”端口将始终高出1000(即:8777 )。 如果您需要一些高级功能,例如通过Web浏览器查询的功能
  • 将Heroku App连接到Atlas MongoDB Cloud服务(Connecting Heroku App to Atlas MongoDB Cloud service)
    问题 为了解决这个问题,我是否需要在Heroku上获得SSL支持,以便使用SSL在Heroku和Atlas MongoDB Cloud之间建立连接? (访问Atlas MongoDB Cloud服务需要TSL / SSL连接)。 我试图将用node.js编写的Heroku应用程序连接到Atlas MongoDB Cloud托管的集群。 我当前的数据库托管在mLab(作为Heroku插件)上,用于通过猫鼬访问集群的MongoDB URI是(使用xxx省略机密信息): MONGODB_URI="mongodb://xxx:xxx@xxx-a0.mlab.com:23266,xxx-a1.mlab.com:xxx/xxx?replicaSet=rs-xxx" 现在,我已将数据从mLab迁移到Atlas MongoDB Cloud,现在我正在使用URI访问集群: MONGODB_URI="mongodb://xxx:xxx@cluster0-shard-xxx.mongodb.net:xxx,cluster0-shard-xxx.mongodb.net:xxx,cluster0-shard-xxx.mongodb.net:xxx/xxx?replicaSet=xxx&ssl=true&authSource=admin" 在我的机器上本地运行Heroku App时,我可以毫无问题地访问数据库