繁体   English   中英

在Ubuntu 14.04 LTS上重新启动系统后,MongoDB无法启动

[英]MongoDB can not start after restart the system on Ubuntu 14.04 LTS

根据官方安装指南,我已经在ubuntu 14.04上安装了mongoDB: http ://docs.mongodb.org/manual/tutorial/install-mongodb-on-ubuntu/

我使用“ mongod”进入终端,一切正常。

但是,当我关闭ubuntu并重新启动它时,命令“ mongod”就无法启动,以下错误发生:

2015-01-30T15:47:51.582-0800 [initandlisten] allocator: tcmalloc
2015-01-30T15:47:51.582-0800 [initandlisten] options: {}
2015-01-30T15:47:51.583-0800 [initandlisten] exception in initAndListen: 10296 
*********************************************************************
 ERROR: dbpath (/data/db) does not exist.
 Create this directory or give existing directory in --dbpath.
 See http://dochub.mongodb.org/core/startingandstoppingmongo
*********************************************************************
, terminating

之后,我尝试创建文件夹并使用以下命令对其进行chmod:

sudo mkdir -p /data/db/
sudo chown `id -u` /data/db

但是发生了另一个错误:

2015-01-30T16:01:43.855-0800 [initandlisten] allocator: tcmalloc
2015-01-30T16:01:43.855-0800 [initandlisten] options: {}
2015-01-30T16:01:43.859-0800 [initandlisten] journal dir=/data/db/journal
2015-01-30T16:01:43.859-0800 [initandlisten] recover : no journal files present, no recovery needed
2015-01-30T16:01:43.994-0800 [initandlisten] ERROR: listen(): bind() failed errno:98 Address already in use for socket: 0.0.0.0:27017
2015-01-30T16:01:43.994-0800 [initandlisten] ERROR: addr already in use
2015-01-30T16:01:43.994-0800 [initandlisten] allocating new ns file /data/db/local.ns, filling with zeroes...
2015-01-30T16:01:44.197-0800 [FileAllocator] allocating new datafile /data/db/local.0, filling with zeroes...

我还寻找了/etc/mongod.conf,

# Where to store the data.

# Note: if you run mongodb as a non-root user (recommended) you may
# need to create and set permissions for this directory manually,
# e.g., if the parent directory isn't mutable by the mongodb user.
dbpath=/var/lib/mongodb

#where to log
logpath=/var/log/mongodb/mongod.log

logappend=true

#port = 27017

我在其中找到默认数据存储文件夹不是/ data / db

我尝试了其他方式

sudo service mongod stop
sudo service mongod restart

但是它们根本不起作用。

系统启动时可能已经有另一个实例在运行,但是我该如何停止呢?

ERROR: addr already in use实际上意味着您已经在运行另一个实例。

您是否尝试过:

  • 在终端中键入mongo ,看看它是否连接到服务器?
  • 检查/var/log/mongodb/mongod.log的日志? 他们是否告诉您实例已启动?
  • 键入ps -edf | grep mongod ps -edf | grep mongod ,看看是否有任何进程正在运行? 我想这不是一个好习惯,但是如果有人出现,您是否尝试kill它,然后再次键入mongod

Aynway,您可能想尝试两件事:

  • 当您键入sudo service mongod stop并在sudo service mongod restart ,请尝试在终端中键入mongod 当您正常停止正在运行的实例时,您应该能够启动自己的实例
  • 您可以尝试启动另一个实例。 为此,您将必须至少指定port (并选择与默认port不同的port ),最好指定dbpath (确保选择已存在目录的路径)。 您可以在命令行上执行此操作,例如:

$ mongod --port 28000 --dbpath / path / to / your / db

或者,您可以基于默认值创建自己的mongodb.conf ,更改portdbpath的值,然后启动mongod指定此配置文件的路径:

$ mongod -f /path/to/your/mongod.conf

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM