无法连接到服务器127.0.0.1 shell / mongo.js

当我在我的Ubuntu的安装MongoDB,我试试:./mongo它显示这个错误:

couldn't connect to server 127.0.0.1 shell/mongo.js 

所以我能做什么,

谢谢

  • 手动删除lockfile: sudo rm /var/lib/mongodb/mongod.lock
  • 运行修复脚本: sudo -u mongodb mongod -f /etc/mongodb.conf --repair

请注意以下事项:

  • 您必须以mongodb用户身份运行此命令。 如果以root用户身份运行它,那么root用户将拥有运行mongodb守护进程所需的/ var / lib / mongodb /中的文件,因此当守护进程稍后作为mongodb用户运行时,它将无权启动。 在这种情况下,你会得到这个错误:无法为lockfilepath创build/打开locking文件:/var/lib/mongodb/mongod.lock errno:13权限被拒绝,终止。
  • 在Ubuntu上,您必须使用-f标志来指定configuration文件/etc/mongodb.conf。 否则,它将在错误的地方查找数据文件,您将看到以下错误:dbpath(/ data / db /)不存在,终止。
 sudo rm /var/lib/mongodb/mongod.lock sudo -u mongodb mongod -f /etc/mongodb.conf --repair sudo service mongodb start 

有时候,在执行这些操作之后,需要一些时间才能启动mongo。

尝试运行$ mongod

如果你遇到错误,如

 MongoDB shell version: 2.0.5 connecting to: test Fri Jun 1 11:20:33 Error: couldn't connect to server 127.0.0.1 shell/mongo.js:84 exception: connect failed hisham-agil:~ hisham$ mongod mongod --help for help and startup options Fri Jun 1 11:24:47 [initandlisten] MongoDB starting : pid=53452 port=27017 dbpath=/data/db/ 64-bit host=hisham-agil.local Fri Jun 1 11:24:47 [initandlisten] db version v2.0.5, pdfile version 4.5 Fri Jun 1 11:24:47 [initandlisten] git version: nogitversion Fri Jun 1 11:24:47 [initandlisten] build info: Darwin gamma.local 11.3.0 Darwin Kernel Version 11.3.0: Thu Jan 12 18:48:32 PST 2012; root:xnu-1699.24.23~1/RELEASE_I386 i386 BOOST_LIB_VERSION=1_49 Fri Jun 1 11:24:47 [initandlisten] options: {} Fri Jun 1 11:24:47 [initandlisten] exception in initAndListen: 10296 dbpath (/data/db/) does not exist, terminating Fri Jun 1 11:24:47 dbexit: Fri Jun 1 11:24:47 [initandlisten] shutdown: going to close listening sockets... Fri Jun 1 11:24:47 [initandlisten] shutdown: going to flush diaglog... Fri Jun 1 11:24:47 [initandlisten] shutdown: going to close sockets... Fri Jun 1 11:24:47 [initandlisten] shutdown: waiting for fs preallocator... Fri Jun 1 11:24:47 [initandlisten] shutdown: lock for final commit... Fri Jun 1 11:24:47 [initandlisten] shutdown: final commit... Fri Jun 1 11:24:47 [initandlisten] shutdown: closing all files... Fri Jun 1 11:24:47 [initandlisten] closeAllFiles() finished Fri Jun 1 11:24:47 dbexit: really exiting now 

然后你遇到了一个很常见的基本启动错误。

默认情况下,mongod将尝试使用/ data / db作为其数据库文件,在这种情况下,它不存在。

你不能开始

 mongo 

直到你处理

 mongod. 

尝试创build这些目录并确保它们可以由运行mongod进程的相同用户写入。

**看到类似的问题 – 获取错误,“错误:无法连接到服务器127.0.0.1 shell / mongo.js”&当试图在mac OSX狮子上运行mongodb

这实际上不是一个错误…这里发生的是Mongo依靠一个守护进程来运行本地数据库服务器,所以为了“启动”shell中的mongo服务器 ,你必须启动mongo服务第一。

对于Fedora Linux (这是我使用的发行版)你必须运行这些命令:

 1 sudo service mongod start 2 mongo 

在那里,你有它! 服务器即将运行。 现在,如果您希望Mongo服务在系统引导时启动,那么您必须运行:

 sudo chkconfig --levels 235 mongod on 

就这样! 如果你这样做,现在在shell中,你只需要键入mongo来启动服务器,但这是非常多的,问题是你必须先启动服务,然后服务器:)

PS我发布的命令可能也适用于其他Linux发行版,而不仅仅是在Fedora …如果没有,也许你不得不根据你使用的发行版调整一些单词 ;)

你需要删除ubuntu上的mongod.lock或者/var/lib/mongodb/mongod.lock ,然后你需要在ubuntu上运行mongod.exe或者service mongodb start ,然后在ubuntu上运行mongo.exe或者mongo

当我尝试安装mongo时遇到同样的问题。 我得到错误作为,

错误

 "Error: couldn't connect to server 127.0.0.1 shell/mongo.js:84" 

解:

首先使用以下命令安装mongod:

 sudo apt-get install mongodb-server 

然后键入

 mongod --dbpath /mongo/db 

然后

 sudo rm /var/lib/mongodb/mongod.lock 

然后

 sudo -u mongodb mongod -f /etc/mongodb.conf --repair 

谢谢

或者你的mongod没有运行(使用“ps”命令检查),或者它正在监听某个外部IP地址,而不是本地主机。 所以首先检查进程列表是否'mongod'正在运行。 如果是,请检查相关端口的“netstat -nap”。

当然,你可以手动启动控制台上的mongod,甚至可以查看mongod日志文件(如果有一个configuration…取决于你如何安装mongod)。

首先,您必须确保/ var / lib / mongodb /文件夹(或dbpath指向的文件夹)中的所有文件和目录属于mongodb用户和mongodb组。

 cd /var/lib/mongodb/ sudo chown mongodb filename.* sudo chgrp mongodb filename.* sudo chown -R mongodb directory sudo chgrp -R mongodb directory 

(用它们各自的名字replace文件名和目录)

然后,您可以删除锁,修复数据库并重新启动守护进程,就像其他人已经提到的那样:

 sudo rm /var/lib/mongodb/mongod.lock sudo -u mongodb mongod -f /etc/mongodb.conf --repair sudo service mongodb start 

首先启动您的mongo服务器

 Users-MacBook-Pro:csv1 Admin$ mongod all output going to: /usr/local/var/log/mongodb/mongo.log 

然后打开另一个terminal窗口并打开shell

 Users-MacBook-Pro:csv1 Admin$ mongo 

还要检查你的根分区是否有足够的空间来启动mongod。

 df -h / 

在mongod启动时你会看到这样的情况:

 Mon Aug 12 17:02:59.159 [initandlisten] recover : no journal files present, no recovery needed Mon Aug 12 17:02:59.159 [initandlisten] Mon Aug 12 17:02:59.159 [initandlisten] ERROR: Insufficient free space for journal files Mon Aug 12 17:02:59.159 [initandlisten] Please make at least 3379MB available in /var/lib/mongodb/journal or use --smallfiles Mon Aug 12 17:02:59.159 [initandlisten] Mon Aug 12 17:02:59.159 [initandlisten] exception in initAndListen: 15926 Insufficient free space for journals, terminating Mon Aug 12 17:02:59.159 dbexit: Mon Aug 12 17:02:59.159 [initandlisten] shutdown: going to close listening sockets... 

在Ubuntu上,试试这个:

 sudo invoke-rc.d mongodb start 

它可能是$ PATH和权限问题的组合。

请按照以下步骤操作:

更新你的$ PATHvariables来指向你的MongoDB bin文件。 在我的情况下,brew安装MongoDB到这个文件夹:

 /usr/local/Cellar/mongodb/2.4.6/ 

为了更新您的$ PATHvariables,请执行以下操作:

 $ sudo vi /etc/paths 

然后,按'i'在Vi中插入文本,并将MongoDBpath附加到“path”文件的末尾,然后重新启动terminal。

 /usr/local/Cellar/mongodb/2.4.6/bin 

使用“Esc:w q”保存并退出Vi编辑器。

使用echo来显示你的pathvariables:

 $ echo $PATH /usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/Cellar/mongodb/2.4.6/bin 

现在尝试检查Mongo版本,如果你跟随,那么你是在正确的轨道上!

 $ mongo --version MongoDB shell version: 2.4.6 

现在我们需要创build数据库目录。 我使用了MongoDB文档中build议的默认“/ data / db”位置。 我还创build了一个日志目录,以避免在Mongo尝试创build任何日志时出现任何权限问题。 改变所有权,并将完成这项工作。

 $ sudo mkdir /data/db $ sudo mkdir /data/log $ whoami username $ chown -R username /data 

现在,我们将为MongoDB首次创build一个默认的configuration文件,供我们运行“mongod”命令。 现在,我还想指出,'mongod'将启动一个服务,它将监听传入的数据连接。 这与'$ service mysqld start'执行相似。我们继续创buildconfiguration文件。 请记住,我已经创build了非常基本的configuration文件。 但是,您可以添加许多其他variables来configurationMongoDB。 这是我第一次玩MongoDB,所以我只知道MongoDB文档,我创build了“mongodb.conf”。

 $ sudo vi /etc/mongodb.conf 

添加如下:

 fork = true port = 27017 quiet = true dbpath = /data/db logpath = /data/log/mongod.log logappend = true journal = true 

请注意,MongoDB服务器的默认端口是27017.请使用您自己的path来创build步骤-5中创build的dbpath和logpath。不要忘记closures并保存conf文件。

现在我们都准备开始我们的MongoDB服务。 打开terminal1的两个实例,input:

 $ sudo mongod -f /etc/mongodb.conf about to fork child process, waiting until server is ready for connections. forked process: 3516 all output going to: /data/log/mongod.log child process started successfully, parent exiting 

如果你得到上面的消息,那么知道你已经成功地启动了你的Mongod服务。

现在,连接到它,在terminal2键入以下内容:

 $mongo test MongoDB shell version: 2.4.6 connecting to: test Server has startup warnings: Tue Sep 3 16:55:43.527 [initandlisten] Tue Sep 3 16:55:43.527 [initandlisten] ** WARNING: soft rlimits too low. Number of files is 256, should be at least 1000 > 

忽略警告,但是您已成功连接到“testing”数据库! 凉!

就这样。 我应用这个解决scheme,当我试图在我的Mac上第一次安装MongoDB的副本。 看看这是否也帮助你。

对于详细的文章,你可以去这里 – http://arcanebytes.com/2013/09/03/mongodb-installation-on-mac-os-x/#comment-1036112094

我希望它有帮助!

干杯,Chinmay

我通过以下步骤在Ubuntu 12.04上解决了这个问题:
1)sudo rm / var / log / mongodb
2)sudo rm / var / lib / mongodb
3)我删除了mongo,然后再次安装它
4)sudo服务mongodb重启

一切都很好