无法连接到服务器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重启
一切都很好