如何使用自定义DBPath在Ubuntu上启动MongoDB即服务

时间:2018-02-02 22:09:36

标签: mongodb ubuntu

我有一台完全正常运行MongoDB的Ubuntu服务器,但服务器耗尽了磁盘空间并崩溃了。我已将其清除,但现在我无法恢复Mongo并作为服务运行。

之前已经发生这种情况,我可以通过以下方式解决问题:

sudo rm /var/lib/mongodb/mongod.lock
sudo mongod --repair
sudo chown mongodb /tmp/mongodb-27017.sock
sudo service mongod start

但是现在当我这样做时,我在修理过程中遇到了这个错误:

exception in initAndListen: 29 Data directory /data/db not found., terminating

当我追加dbpath的位置时,我得到一个不同的错误:

 sudo mongod --dbpath /var/lib/mongodb --repair
 ...
 Failed to unlink socket file /tmp/mongodb-27017.sock errno:1 Operation not permitted
Fatal Assertion 28578

奇怪的是,如果我独立运行mongod服务,一切都很有效:

sudo mongod --dbpath /var/lib/mongodb

我能够连接到它并且一切都是hunkydory,但是我需要这个作为服务运行,以便我可以关闭终端窗口。什么想法可能是错的?

我怀疑由于某种原因,当我运行service mongo start命令时,它没有在mongod.conf中获取设置。

好的方法,这就是我的/etc/mongod.conf的样子:

# mongod.conf
storage:
  dbPath: /var/lib/mongodb
  journal:
    enabled: false
#  engine:
#  mmapv1:
#  wiredTiger:

# where to write logging data.
systemLog:
  destination: file
  logAppend: true
  path: /var/log/mongodb/mongod.log

# network interfaces
net:
  port: 27017
#  bindIp: 127.0.0.1


#processManagement:

security:
    authorization : enabled
#operationProfiling:

#replication:

#sharding:

## Enterprise-Only Options:

#auditLog:

#snmp:

更新:我能够取得一些进展。我将/etc/mongod.conf文件复制到/data/db/mongod.conf,它现在似乎找到了正确的数据库,但是,现在我收到了一个新的错误:

listen(): bind() failed errno:98 Address already in use for socket: /tmp/mongodb-27017.sock
  addr already in use
Failed to set up sockets during startup.

0 个答案:

没有答案