Mongodb (code=exited, status=14) 失败但没有任何明确的错误

Sae*_*eed 5 mongodb

我有VPS与Ubuntu 18.04 LTSMongodb我的剧本工作,直到4天前很好,但突然我的托管服务器被重新启动(我购买它从一个托管公司),当我的服务器再次被启动,我看到我的网站不能正常工作,并没有连接到数据库。结果systemctl status mongod是:

 mongod.service - MongoDB Database Server
   Loaded: loaded (/lib/systemd/system/mongod.service; enabled; vendor preset: enabled)
   Active: failed (Result: exit-code) since Thu 2020-10-29 22:47:35 +0330; 17h ago
     Docs: https://docs.mongodb.org/manual
  Process: 2800 ExecStart=/usr/bin/mongod --config /etc/mongod.conf (code=exited, status=14)
 Main PID: 2800 (code=exited, status=14)

Oct 29 22:47:35 MYHOSTNAME systemd[1]: Started MongoDB Database Server.
Oct 29 22:47:35 MYHOSTNAME systemd[1]: mongod.service: Main process exited, code=exited, status=14/n/a
Oct 29 22:47:35 MYHOSTNAME systemd[1]: mongod.service: Failed with result 'exit-code'.
Run Code Online (Sandbox Code Playgroud)

当我重新启动服务时,没有任何反应。我查了一下/var/log/mongodb/mongod.log,这是日志:

2020-10-30T15:53:39.251+0330 I REPL     [signalProcessingThread] Stepping down the ReplicationCoordinator for shutdown, waitTime: 10000ms
2020-10-30T15:53:39.458+0330 I CONTROL  [signalProcessingThread] Shutting down the LogicalSessionCache
2020-10-30T15:53:39.460+0330 I NETWORK  [signalProcessingThread] shutdown: going to close listening sockets...
2020-10-30T15:53:39.460+0330 I NETWORK  [signalProcessingThread] removing socket file: /tmp/mongodb-27017.sock
2020-10-30T15:53:39.461+0330 I NETWORK  [signalProcessingThread] Shutting down the global connection pool
2020-10-30T15:53:39.461+0330 I STORAGE  [signalProcessingThread] Shutting down the PeriodicThreadToAbortExpiredTransactions
2020-10-30T15:53:39.462+0330 I REPL     [signalProcessingThread] Shutting down the ReplicationCoordinator
2020-10-30T15:53:39.462+0330 I SHARDING [signalProcessingThread] Shutting down the ShardingInitializationMongoD
2020-10-30T15:53:39.463+0330 I COMMAND  [signalProcessingThread] Killing all open transactions
2020-10-30T15:53:39.463+0330 I -        [signalProcessingThread] Killing all operations for shutdown
2020-10-30T15:53:39.463+0330 I NETWORK  [signalProcessingThread] Shutting down the ReplicaSetMonitor
2020-10-30T15:53:39.463+0330 I CONTROL  [signalProcessingThread] Shutting down free monitoring
2020-10-30T15:53:39.464+0330 I CONTROL  [signalProcessingThread] Shutting down free monitoring
2020-10-30T15:53:39.466+0330 I FTDC     [signalProcessingThread] Shutting down full-time data capture
2020-10-30T15:53:39.466+0330 I FTDC     [signalProcessingThread] Shutting down full-time diagnostic data capture
2020-10-30T15:53:39.470+0330 I STORAGE  [signalProcessingThread] Shutting down the HealthLog
2020-10-30T15:53:39.471+0330 I STORAGE  [signalProcessingThread] Shutting down the storage engine
2020-10-30T15:53:39.472+0330 I STORAGE  [signalProcessingThread] WiredTigerKVEngine shutting down
2020-10-30T15:53:39.472+0330 I STORAGE  [signalProcessingThread] Shutting down session sweeper thread
2020-10-30T15:53:39.472+0330 I STORAGE  [signalProcessingThread] Finished shutting down session sweeper thread
2020-10-30T15:53:39.648+0330 I STORAGE  [signalProcessingThread] shutdown: removing fs lock...
2020-10-30T15:53:39.648+0330 I -        [signalProcessingThread] Dropping the scope cache for shutdown
2020-10-30T15:53:39.648+0330 I CONTROL  [signalProcessingThread] now exiting
2020-10-30T15:53:39.648+0330 I CONTROL  [signalProcessingThread] shutting down with code:0
Run Code Online (Sandbox Code Playgroud)

我做到了telnet localhost 27017,它工作正常并连接(远程连接已关闭)。

我删除/tmp/mongodb-27017.sock手动检查的所有权/var/log/mongodb/var/lib/mongodb一切是正确的。chown -R mongodb:mongodb如果在突然重启期间发生任何不正确的所有权,我也在这两个文件夹上进行了更正,但没有任何效果。

顺便说一句,当我运行/usr/bin/mongod --config /etc/mongod.conf命令时,我的网站运行,我可以登录我的用户帐户等。我目前正在执行此操作screen以运行我的网站,但我不知道如何找到问题并修复它。

你能帮我检查一下 MongoDB 有什么问题以及如何修复它吗?也像nginx -t测试配置文件一样,有没有类似的命令?我读了man mongod但什么也没找到。

编辑添加/etc/mongodb.conf内容

# mongod.conf

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

# Where and how to store data.
storage:
  dbPath: /var/lib/mongodb
  journal:
    enabled: true
#  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


# how the process runs
processManagement:
  timeZoneInfo: /usr/share/zoneinfo

security:
  authorization: enabled

#operationProfiling:

#replication:

#sharding:

## Enterprise-Only Options:

#auditLog:

#snmp:
Run Code Online (Sandbox Code Playgroud)

小智 20

试试这个:-为我工作

chown -R mongodb:mongodb /var/lib/mongodb
chown mongodb:mongodb /tmp/mongodb-27017.sock

sudo service mongod restart
Run Code Online (Sandbox Code Playgroud)

  • 你好呀!对于同一问题,这个答案也对我有用。但是,您知道它为什么有效吗?“mongodb”用户生成的均匀程度如何?对困惑感到抱歉。 (3认同)
  • 愿意添加一些信息为什么会发生这种情况以及为什么更改权限有效?谢谢 (3认同)

jed*_*jed 14

在我的例子中,用户是 mongod ,/var/lib文件夹中的文件夹是mongo,所以我必须运行这个命令

chown -R mongod:mongod /var/lib/mongo/
chown mongod:mongod /tmp/mongodb-27017.sock

systemctl restart mongod
Run Code Online (Sandbox Code Playgroud)


Sae*_*eed 5

我通过使用 grepping mongo 进行彻底调查解决了这个问题/var/log/syslog

我执行chown -R mongodb:mongodb /var/lib/mongodb/并终止了我的screen命令,然后重新启动mongod服务,然后检查status,所以现在服务和我的网站运行没有问题。

解决方案的更好版本,运行以下命令:

chown -R mongodb:mongodb /var/lib/mongodb/
systemctl restart mongod
Run Code Online (Sandbox Code Playgroud)