当我在我的ubuntu中设置mongodb时,我尝试:./ mongo它显示此错误:
couldn't connect to server 127.0.0.1 shell/mongo.js
所以我该怎么做,
感谢
答案 0 :(得分:124)
sudo rm /var/lib/mongodb/mongod.lock
sudo -u mongodb mongod -f /etc/mongodb.conf --repair
请注意以下事项:
答案 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进程的同一用户写入。
答案 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.exe
或service 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
一切都很好