无法启动mongodb本地服务器

时间:2011-06-25 13:44:29

标签: mongodb

我是mongodb的新用户..当我尝试使用mongod命令运行mongodb本地服务器时,它无法运行并抛出此错误..

/usr/lib/mongodb/mongod --help for help and startup options
Sat Jun 25 09:38:51 MongoDB starting : pid=1782 port=27017 dbpath=/data/db/ 32-bit 

** NOTE: when using MongoDB 32 bit, you are limited to about 2 gigabytes of data
**       see http://blog.mongodb.org/post/137788967/32-bit-limitations

Sat Jun 25 09:38:51 db version v1.6.3, pdfile version 4.5
Sat Jun 25 09:38:51 git version: nogitversion
Sat Jun 25 09:38:51 sys info: Linux vernadsky 2.6.24-27-server #1 SMP Fri Mar 12 01:45:06 UTC 2010 i686 BOOST_LIB_VERSION=1_42
Sat Jun 25 09:38:51 [initandlisten] *** warning: spider monkey build without utf8 support.  consider rebuilding with utf8 support
Sat Jun 25 09:38:51 [initandlisten] waiting for connections on port 27017
Sat Jun 25 09:38:51 [initandlisten] listen(): bind() failed errno:98 Address already in use for socket: 0.0.0.0:27017
Sat Jun 25 09:38:51 [initandlisten]   addr already in use
Sat Jun 25 09:38:51 [initandlisten] now exiting
Sat Jun 25 09:38:51 dbexit: 

Sat Jun 25 09:38:51 [initandlisten] shutdown: going to close listening sockets...
Sat Jun 25 09:38:51 [initandlisten] shutdown: going to flush oplog...
Sat Jun 25 09:38:51 [initandlisten] shutdown: going to close sockets...
Sat Jun 25 09:38:51 [initandlisten] shutdown: waiting for fs preallocator...
Sat Jun 25 09:38:51 [initandlisten] shutdown: closing all files...
Sat Jun 25 09:38:51     closeAllFiles() finished

Sat Jun 25 09:38:51 [initandlisten] shutdown: removing fs lock...
Sat Jun 25 09:38:51 dbexit: really exiting now

我尝试删除mongod.lock文件... 我跑了mongod --repair .. 我还更改了mongod.lock文件的权限。

但似乎没有任何效果..它一直显示相同的错误.. 我该怎么办?

我也安装了git版本1.7.4.1 但它显示错误的nogitversion ..

24 个答案:

答案 0 :(得分:171)

尝试:

sudo service mongod stop
sudo mongod

要停止当前活动的mongodb服务,然后允许您开始新的

答案 1 :(得分:141)

不要使用-9信号终止进程,因为它会造成损害:http://www.mongodb.org/display/DOCS/Starting+and+Stopping+Mongo#StartingandStoppingMongo-SendingaUnixINTorTERMsignal

使用sudo killall -15 mongod代替

答案 2 :(得分:51)

  

Andreas Jung:

     

" Sat Jun 25 09:38:51 [initandlisten] listen():bind()失败错误:98地址已经用于套接字:0.0.0.0:27017

     

是自言自语。

     

mongod的另一个实例已经在运行并分配了MongoDB默认端口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

答案 3 :(得分:29)

  

周六6月25日09:38:51 [initandlisten]   listen():bind()失败错误:98   已经用于套接字的地址:   0.0.0.0:27017

是自言自语。

mongod的另一个实例已经在运行并分配了MongoDB默认端口27017。

要么杀死其他进程,要么使用其他端口。

答案 4 :(得分:27)

从netstat中了解哪个进程正在运行mongodb port(27017)

命令:

sudo netstat -tulpn | grep :27017

输出将是:

tcp        0      0 0.0.0.0:27017           0.0.0.0:* 
LISTEN      6432/mongod

在我的情况下,“6432”是pid,在您的情况下可能会有所不同。 然后使用以下命令终止该进程:

sudo kill <pid>

多数民众赞成!

答案 5 :(得分:23)

使用:

sudo killall mongod

它将停止服务器。

然后通过以下方式重新启动mongod

sudo service mongod restart

它应该有用。

答案 6 :(得分:15)

您想killall -15 mongod,因为它仍在运行:Address already in use for socket: 0.0.0.0:27017

然后您可以再次运行mongod

答案 7 :(得分:7)

我建议改用:

phase

这可行。

答案 8 :(得分:7)

如果找不到任何当前正在运行的进程或者杀死它们不起作用,请尝试使用其他端口。例如,尝试27018,因为默认值为27017。

mongod  --port 27018

我用命令mongod --help

找到了这个

答案 9 :(得分:6)

尝试使用killall -15 mongod / killall mongod 即使在此之后如果这不起作用,则通过键入以下命令来删除db storage文件夹 sudo rm -rf / data / db sudo mkdir / data / db sudo chmod 777 / data / db

答案 10 :(得分:4)

OS X. 活动监控, 寻找 mongod , 穿过它。 然后再次运行mongod。 问题解决了。

答案 11 :(得分:4)

打开终端并输入:

mkdir -p /data/db

然后输入:

mongod

答案 12 :(得分:3)

我遇到了同样的问题,我试图打开一个新的mongod实例,它说它已经在运行了。

我检查了docs,它说要输入

mongo
use admin
db.shutdownServer()

答案 13 :(得分:3)

MongoDB无法启动主要是由于不干净关机。要解决此问题,请删除mongod.lock文件。该文件位于数据文件夹中。

通过查看mongodb.conf或mongod.conf文件,找出数据文件夹的位置。 (Linux系统上/ etc下的Conf文件。)

# Where and how to store data.
storage:
  dbPath: /var/lib/mongodb

例如,使用上面的配置,文件位于/var/lib/mongodb/mongod.lock。只需将其删除并重新启动mongodb。

答案 14 :(得分:2)

检查/var/log/mongodb/mongod.log上的日志并尝试推断出错误。就我而言,它是

无法取消链接套接字文件/tmp/mongodb-27017.sock错误:1不允许操作

已删除/tmp/mongodb-27017.sock并且有效。

答案 15 :(得分:2)

我遇到了同样的问题。虽然mongodb服务未运行,但日志显示address already in use消息。

 $netstat -tulpn | grep :27017 

什么都不返回

进一步分析发现该问题是由于锁定文件造成的。删除锁定文件并重新启动后,该服务正常运行。

$grep "dbpath" /etc/mongodb.conf

dbpath =/var/lib/mongodb

$ls /var/lib/mongodb/mongod.lock

$service mongod start

答案 16 :(得分:1)

服务器可能已在运行。请通过命令 mongo 检查它是否正常工作。

答案 17 :(得分:1)

尝试

/usr/lib/mongodb/mongod.exe --dbpath c:data \ db

- dbpath(后面应该是数据库的路径)

答案 18 :(得分:0)

如果你是第一次运行mongo,你可能想先设置路径

mongod --dbpath <path to the directory>

答案 19 :(得分:0)

当您缺少LC_ALL环境设置时,看起来在日志中显示相同的错误。这很令人困惑,但您可以执行mongo客户端以查看它是一个问题。

答案 20 :(得分:0)

(如果你正在使用linux,)

mongod --shutdown --config=path/to/your/configFile.conf 

mongod --repair --config=path/to/your/configFile.conf 

没有解决问题,退出并重新登录。这解决了我的问题。

或者你可以从终端手动终止进程,我想。

答案 21 :(得分:0)

它显示错误listen():bind()失败错误:98地址已用于套接字:0.0.0.0:27017 即27017地址已被某些其他服务使用。  请检查一下 “netstat -apt | grep”27017“” 命令

答案 22 :(得分:0)

要在 Windows 中补充:

例如,已安装mongoDB 3.6版,MongoDB的安装路径为“ D:\ Program Files \ MongoDB”。

创建文件夹D:\ mongodb \ logs,然后在此文件夹中创建文件mongodb.log。

管理员的身份运行cmd.exe,

D:\Program Files\MongoDB\Server\3.6\bin>taskkill /F /IM mongod.exe
D:\Program Files\MongoDB\Server\3.6\bin>mongod.exe --logpath D:\mongodb\logs\mongodb.log --logappend --dbpath D:\mongodb\data --directoryperdb --serviceName MongoDB --remove
D:\Program Files\MongoDB\Server\3.6\bin>mongod --logpath "D:\mongodb\logs\mongodb.log" --logappend --dbpath "D:\mongodb\data" --directoryperdb --serviceName "MongoDB" --serviceDisplayName "MongoDB" --install

删除文件夹“ D:\ mongodb \ data”下的这两个文件mongod.lockstorage.bson

然后使用管理员权限在cmd中键入net start MongoDB,此问题将得到解决。

答案 23 :(得分:0)

杀人过程无法解决我的问题。 我的 mac 崩溃了,重新启动后,mongo dbPath中存在一些锁定文件(mongod.lock,WiredTiger.lock)。我将这些文件移到了其他文件夹(为了避免出现更多问题,我没有删除它们),然后它起作用了。 在后继之星上,我删除了移动的锁定文件。