【问题标题】:Mongodb /var/log/mongodb/mongod.log prevents mongod from startingMongodb /var/log/mongodb/mongod.log 阻止mongod启动
【发布时间】:2018-08-25 17:41:13
【问题描述】:

我在 centos 7 aws ec2 实例上使用 mongodb 3.6.3。

2 个问题(只需回答一个):

  1. 如果使用 sudo mongod --storageEngine etc 通过 cli 手动完成,为什么 --logpath 会阻止 mongod 命令
  2. 为什么sudo service mongod status 显示失败?

当我运行以下命令时,(因为目前,sudo service mongod start 不工作,但以下工作)当我指定 --logpath 时它会失败,但没有它会运行。不幸的是,当我在没有它的情况下运行它时,我的所有日​​志最终都在/ 这绝对是错误的位置。

sudo mongod --storageEngine wiredTiger --dbpath /data --bind_ip 127.0.0.1,apiIP --logpath /var/log/mongodb/mongod.log --auth --fork

以下是当我尝试按原样运行上述行时发生的情况。

I CONTROL [main] log file "/var/log/mongodb/mongod.log" exists; moved to "/var/log/mongodb/mongod.log.2018-03-16T15-16-01".

据我所知,它与当前存在的冲突

仅供参考,sudo service mongod status返回:

mongod.service - mongodb database
   Loaded: loaded (/usr/lib/systemd/system/mongod.service; enabled; vendor preset: disabled)
   Active: failed (Result: exit-code) since Fri 2018-03-16 15:11:53 UTC; 9min ago
  Process: 26620 ExecStart=/usr/bin/mongod $OPTIONS run (code=exited, status=2)
 Main PID: 26620 (code=exited, status=2)

Mar 16 15:11:53 ip-* systemd[1]: Started mongodb database.
Mar 16 15:11:53 ip-* systemd[1]: Starting mongodb database...
Mar 16 15:11:53 ip-* mongod[26620]: F CONTROL  [main] Failed global initialization: FileNotOpen: Failed to open "/var/log/mongodb/mongod.log"
Mar 16 15:11:53 ip-* systemd[1]: mongod.service: main process exited, code=exited, status=1/FAILURE
Mar 16 15:11:53 ip-* systemd[1]: Unit mongod.service entered failed state.
Mar 16 15:11:53 ip-* systemd[1]: mongod.service failed.

/etc/mongod.conf

# mongod.conf

# for documentation of all options, see:
#   http://docs.mongodb.org/manual/reference/configuration-options/

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

# Where and how to store data.
storage:
  dbPath: /data
#  logpath: /log/mongod.log
  journal:
    enabled: true
   engine: wiredTiger
#  mmapv1:
#  wiredTiger:

# how the process runs
processManagement:
#  fork: true  # fork and run in background
  pidFilePath: /var/run/mongodb/mongod.pid  # location of pidfile
  timeZoneInfo: /usr/share/zoneinfo

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

感谢 @AlexBlex 注意到 yaml 文件中的间距问题。

排序后,状态错误有这一行 Unrecognized option: storage.wiredTiger

【问题讨论】:

  • 那么问题到底是什么? service 命令没有 --logpath 参数。日志轮换是一项功能。
  • 答案不在日志中:解析 YAML 配置文件时出错?第 20 行是什么,上校。 4?
  • 确认一下,yaml文件是mongod.conf文件吗?否则,我不知道在哪里可以找到yaml-cpp 或任何其他类似的文件?
  • @AlexBlex 我更明确地说明了帖子顶部的问题
  • 删除第 20 行 wiredTiger 之前的多余空格。YAML 是缩进敏感的。

标签: database mongodb amazon-web-services amazon-ec2 centos7


【解决方案1】:
sudo systemctl enable mongod
sudo systemctl restart mongod
sudo journalctl -u mongod.service

希望如此!

参考:https://stackoverflow.com/a/51286526/122441

【讨论】:

    【解决方案2】:
    1. cd /var/log
    2. sudo mkdir -m 777 mongodb
    3. sudo service mongod start
    4. sudo service mongod status

    希望,就可以了!

    【讨论】:

    • 我不小心从 /var/log/ 中删除了该文件夹,这对我帮助很大。谢谢
    猜你喜欢
    • 2017-12-19
    • 1970-01-01
    • 2017-04-19
    • 2016-01-03
    • 1970-01-01
    • 2015-01-11
    • 2021-02-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多