gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 18:58:00 25 4
gpt4 key购买 nike

我已经根据官方安装指南在 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看看是否有任何进程正在运行?我想这不是一个好习惯,但您是否尝试过 kill如果出现,则输入 mongod再次?

  • Aynway,您可能想尝试两件事:
  • 当您键入 sudo service mongod stopsudo service mongod restart 之前, 尝试输入 mongod在终端。正如您通常停止正在运行的实例一样,您应该能够启动自己的
  • 您可以尝试启动另一个实例。为此,您必须至少指定 port (并选择了一个与默认值不同的),最好是 dbpath (确保选择已经存在的目录的路径)。您可以在命令行上执行此操作,例如:

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



    或者您可以创建自己的 mongodb.conf ,基于默认值,更改 port 的值和 dbpath , 并开始 mongod指定此配置文件的路径:

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

    关于在 Ubuntu 14.04 LTS 上重启系统后 MongoDB 无法启动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28246697/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com