Mongodb将无法启动

时间:2013-01-20 19:05:52

标签: macos mongodb

我使用Mac Homebrew命令安装了MongoDB,但是当我运行mongod

我的终端无法识别:/

如果我输入export PATH=$PATH:/usr/local/mongodb/bin然后运行mongod,它就会启动但很快退出

mongod --help for help and startup options
Sun Jan 20 18:59:25 [initandlisten] MongoDB starting : pid=59800 port=27017 dbpath=/data/db/ 64-bit host=Kevin-Tucks-MacBook-Pro.local
Sun Jan 20 18:59:25 [initandlisten] db version v2.0.4, pdfile version 4.5
Sun Jan 20 18:59:25 [initandlisten] git version: 329f3c47fe8136c03392c8f0e548506cb21f8ebf
Sun Jan 20 18:59:25 [initandlisten] build info: Darwin erh2.10gen.cc 9.8.0 Darwin Kernel Version 9.8.0: Wed Jul 15 16:55:01 PDT 2009; root:xnu-1228.15.4~1/RELEASE_I386 i386 BOOST_LIB_VERSION=1_40
Sun Jan 20 18:59:25 [initandlisten] options: {}
Sun Jan 20 18:59:25 [initandlisten] journal dir=/data/db/journal
Sun Jan 20 18:59:25 [initandlisten] recover : no journal files present, no recovery needed
Sun Jan 20 18:59:25 [initandlisten] preallocateIsFaster=true 2.38
Sun Jan 20 18:59:25 [websvr] ERROR: listen(): bind() failed errno:48 Address already in use for socket: 0.0.0.0:28017
Sun Jan 20 18:59:25 [websvr] ERROR:   addr already in use
Sun Jan 20 18:59:25 [initandlisten] ERROR: listen(): bind() failed errno:48 Address already in use for socket: 0.0.0.0:27017
Sun Jan 20 18:59:25 [initandlisten] ERROR:   addr already in use
Sun Jan 20 18:59:25 [initandlisten] now exiting
Sun Jan 20 18:59:25 dbexit: 
Sun Jan 20 18:59:25 [initandlisten] shutdown: going to close listening sockets...
Sun Jan 20 18:59:25 [initandlisten] shutdown: going to flush diaglog...
Sun Jan 20 18:59:25 [initandlisten] shutdown: going to close sockets...
Sun Jan 20 18:59:25 [initandlisten] shutdown: waiting for fs preallocator...
Sun Jan 20 18:59:25 [initandlisten] shutdown: lock for final commit...
Sun Jan 20 18:59:25 [initandlisten] shutdown: final commit...
Sun Jan 20 18:59:25 [initandlisten] shutdown: closing all files...
Sun Jan 20 18:59:25 [initandlisten] closeAllFiles() finished
Sun Jan 20 18:59:25 [initandlisten] journalCleanup...
Sun Jan 20 18:59:25 [initandlisten] removeJournalFiles
Sun Jan 20 18:59:25 [initandlisten] shutdown: removing fs lock...
Sun Jan 20 18:59:25 dbexit: really exiting now

我已尝试重新启动我的shell,但如果我再次尝试再次运行mongod,则会返回为无法识别并要求我在export PATH=$PATH:/usr/local/mongodb/bin中重新输入。

7 个答案:

答案 0 :(得分:77)

凯尔:“看起来mongo已经在运行,或者其他进程正在使用端口27017”

在这种情况下,请键入以下命令

ps wuax | grep mongo

你应该看到一些看起来像这样的东西

User           31936   0.5 0.4 2719784 35624   ?? S     7:34pm   0:09.98 mongod
User           31945   0.0 0.0 2423368   184 s000 R+   8:24pm   0:00.00 grep mongo

现在输入mongod实例的kill命令(本例中为31936):

kill 31936

答案 1 :(得分:4)

我刚刚在osx(10.9.3),mongod(2.6.1)上安装了brew,并遇到了同样的问题。 Def不运行第二个副本。

$ lsof -i | grep 2701 

显示没有开放端口。

我发现以下情况有所帮助。

默认配置文件brew writes(/usr/local/etc/mongod.conf)包含以下行:

bind_ip = 127.0.0.1,<my-machine>.local

如果您编辑此文件并将该行更改为以下任一项:

bind_ip = 127.0.0.1
or
bind_ip = <my-machine>.local

然后使用以下命令重启服务,它应该按预期启动。

$ brew services restart mongodb

您可以在启动时通过在另一个窗口中拖尾日志文件来检查成功或失败

$ tail -f /usr/local/var/log/mongodb/mongo.log 

它似乎正在尝试打开这里列出的两个地址,它们都解析为127.0.0.1,所以当它试图打开第二个端口然后关闭整个地址时我们总是会失败。

答案 2 :(得分:3)

  

Sun Jan 20 18:59:25 [websvr]错误:addr已经在使用Sun 1月20日   18:59:25 [initandlisten] ERROR:listen():bind()失败错误:48   地址已用于套接字:0.0.0.0:27017 Sun Jan 20 18:59:25   [initandlisten] ERROR:addr已在使用中

看起来mongo已在运行或其他进程正在使用端口27017

答案 3 :(得分:1)

这个解决方案适合我。我使用mongodb 3.2版

我设置路径,

/usr/local/bin

我将mongodb数据目录设为/ data / db并设置myown帐户的权限。来自mkyong的tutorial非常有帮助。

答案 4 :(得分:1)

对于任何登陆这里的人来说,通过停止已经运行的mongodb服务来解决这个问题(至少在我的最后):

brew services stop mongodb

然后运行mongod

答案 5 :(得分:0)

对于mongod不在你的PATH中,看起来支持的逻辑在你所使用的版本之后被调整了几次。如果您升级,该问题可能会自动修复。

正如其他人已经说过的那样,它给出的错误表明另一个进程已经在使用配置的端口。一种可能性是,在过去,您运行了Homebrew提供给您的命令,以将MongoDB安装为LaunchAgent。如果是这种情况,则此命令应撤消该命令,允许您从命令行启动它。

launchctl unload ~/Library/LaunchAgents/homebrew.mxcl.mongodb.plist

答案 6 :(得分:0)

在配置自动启动时,它不允许杀死,因此请删除锁定文件并进行修复(mac osx)。

 cd /data/db
 rm mongod.lock
 sudo mongod --repair