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

时间:2011-04-20 05:45:06

标签: linux mongodb ubuntu

当我在我的ubuntu中设置mongodb时,我尝试:./ mongo它显示此错误:

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

所以我该怎么做,

感谢

13 个答案:

答案 0 :(得分:124)

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

请注意以下事项:

  • 您必须以mongodb用户身份运行此命令。如果以root身份运行它, 然后root将拥有/ var / lib / mongodb /中必需的文件 运行mongodb守护进程,因此当守护进程运行时 以后作为mongodb用户,它将没有权限启动。在 在这种情况下,您将收到此错误:无法创建/打开锁定文件 for lockfilepath:/var/lib/mongodb/mongod.lock errno:13权限 否认,终止。
  • 在Ubuntu上,您必须指定配置文件/etc/mongodb.conf 使用-f标志。否则它将在中查找数据文件 错误的地方,你会看到以下错误:dbpath(/ data / db /) 不存在,终止。

答案 1 :(得分:32)

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

总而言之,执行这些操作后,启动mongo需要一段时间。

答案 2 :(得分:21)

尝试运行$ 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.

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

**见类似问题 - Getting an error, "Error: couldn't connect to server 127.0.0.1 shell/mongo.js" & when trying to run mongodb on mac osx lion

答案 3 :(得分:20)

这实际上不是错误......这里发生的是Mongo依赖守护程序来运行本地数据库服务器,所以为了#34;启动&#34 ;你的shell中的 mongo服务器,你必须先启动 mongo服务

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

1 sudo service mongod start
2 mongo

你有它!服务器将要运行。现在,如果你想要Mongo服务 在系统启动时启动,然后您必须运行:

sudo chkconfig --levels 235 mongod on

这就是全部!如果你这样做,现在在shell中你只需要按顺序键入 mongo 启动服务器,但几乎就是它,问题是你必须首先启动服务器然后启动服务器:)

P.S。我发布的命令也可能适用于其他Linux发行版,而不仅仅是在fedora中...如果不是,你可能需要调整一些单词取决于你正在使用的发行版;)< / p>

答案 4 :(得分:8)

当我尝试安装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

谢谢

答案 5 :(得分:6)

您需要删除ubuntu上的锁文件mongod.lock/var/lib/mongodb/mongod.lock,然后您需要先在ubuntu上运行mongod.exeservice mongodb start,然后运行mongo.exe或者在ubuntu上mongo

答案 6 :(得分:5)

您的mongod未运行(使用“ps”命令检查)或者正在侦听某些外部IP地址而不是localhost。因此,如果“mongod”正在运行,请首先检查进程列表。如果是,请使用“netstat -nap”查看相关端口。

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

答案 7 :(得分:5)

首先,您必须确保/ 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

(将文件名和目录替换为各自的名称)

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

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

答案 8 :(得分:5)

首先按

启动你的mongo服务器
Users-MacBook-Pro:csv1 Admin$ mongod
all output going to: /usr/local/var/log/mongodb/mongo.log

然后打开另一个终端窗口并打开shell

Users-MacBook-Pro:csv1 Admin$ mongo

答案 9 :(得分:2)

同时检查您的根分区是否有足够的空间来启动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...

答案 10 :(得分:1)

在Ubuntu上,试试这个:

sudo invoke-rc.d mongodb start

答案 11 :(得分:1)

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

请尝试以下步骤:

更新$ PATH变量以指向MongoDB bin文件。在我的情况下,brew将MongoDB安装到此文件夹:

/usr/local/Cellar/mongodb/2.4.6/

要更新$ PATH变量,请执行以下操作:

$ sudo vi /etc/paths

然后,按'i'在Vi中插入文本,并将您的MongoDB路径追加到'paths'文件的末尾,然后重新启动终端。

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

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

使用echo显示路径变量:

$ 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

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

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

现在,我们将为第一次运行'mongod'命令时提供MongoDB的默认配置文件。现在,我还想指出'mongod'将启动一个服务,它将监听传入的数据连接。这类似于'$ service mysqld start'已执行。让我们继续创建配置文件。请记住,我已经创建了非常基本的配置文件。但是,您可以添加许多其他变量来配置MongoDB。这是我第一次玩MongoDB,所以我只知道我在MongoDB文档上读到的内容!我创建了'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.使用您自己的路径获取在步骤-5中创建的dbpath和logpath。不要忘记关闭并保存配置文件。

现在我们都准备启动我们的MongoDB服务。打开Terminal的两个实例。在终端1中输入:

$ 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服务。

现在,要连接到它,请在终端2中输入以下内容:

$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
>

忽略警告,但您已成功连接到“测试”数据库!酷!

这就是全部。当我第一次尝试在Mac上安装MongoDB副本时,我应用了这个解决方案。看看这对你有帮助吗。

有关详细信息,您可以访问此处 - http://arcanebytes.com/2013/09/03/mongodb-installation-on-mac-os-x/#comment-1036112094

我希望它有所帮助!

干杯, Chinmay

答案 12 :(得分:1)

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

一切都很好