解决mongodb启动报错ERROR: child process failed, exited with error number 14的问题

avatar 2021年4月7日18:09:01 2 5,566 次浏览

mongodb启动之后一直挺稳定的跑走好好的,今天一看挂了,启动的时候还启动不起来,查看一下启动的状态,错误日志如下:

[wolf@wulaoer.org ]# systemctl status mongod.service ● mongod.service - MongoDB Database Server    Loaded: loaded (/usr/lib/systemd/system/mongod.service; enabled; vendor preset: disabled)    Active: failed (Result: exit-code) since Fri 2021-04-02 16:38:33 CST; 7s ago      Docs: https://docs.mongodb.org/manual   Process: 8364 ExecStart=/usr/bin/mongod $OPTIONS (code=exited, status=14)   Process: 8360 ExecStartPre=/usr/bin/chmod 0755 /var/run/mongodb (code=exited, status=0/SUCCESS)   Process: 8356 ExecStartPre=/usr/bin/chown mongod:mongod /var/run/mongodb (code=exited, status=0/SUCCESS)   Process: 8354 ExecStartPre=/usr/bin/mkdir -p /var/run/mongodb (code=exited, status=0/SUCCESS)  Main PID: 1268 (code=exited, status=0/SUCCESS) Apr 02 16:38:33 wulaoer.org systemd[1]: Starting MongoDB Database Server... Apr 02 16:38:33 wulaoer.org mongod[8364]: about to fork child process, waiting until server is ready for connections. Apr 02 16:38:33 wulaoer.org mongod[8364]: forked process: 8367 Apr 02 16:38:33 wulaoer.org mongod[8364]: ERROR: child process failed, exited with error number 14 Apr 02 16:38:33 wulaoer.org mongod[8364]: To see additional information in this output, start without the "--fork" option. Apr 02 16:38:33 wulaoer.org systemd[1]: mongod.service: control process exited, code=exited status=14 Apr 02 16:38:33 wulaoer.org systemd[1]: Failed to start MongoDB Database Server. Apr 02 16:38:33 wulaoer.org systemd[1]: Unit mongod.service entered failed state. Apr 02 16:38:33 wulaoer.org systemd[1]: mongod.service failed.

可能的原因:

systemctl restart mongodb时启动失败

没有正常关闭mongodb引起的,比如直接 kill -9 <pid>导致

在插入数据的时候被多线程锁死【可能是数据量过大,空间容量不足】

解决办法:

找到dbpath里边的mongod.lock文件,并删除mongod.lock,删掉原来log目录里的所有文件就可以

以修复方式启动mongod.如果修复不成功,直接把数据考到另一个地方,在执行此操作。

/usr/bin/mongod -f /etc/mongod.conf --repair

3.然后接着在启动一次

/usr/bin/mongod -f /etc/mongod.conf

4.查看进程是否运行

ps aux|grep mongo

出现的后果:

前面上传了2天的数据全部丢失,真是血的教训

正确的关闭方式:

通过shell连上服务器:

>use admin

>db.shutdownServer()

此次的针对mongodb在工作中出现的错误做一个记录,方便下次在遇到同样的问题,找到解决方法,也希望可以帮助更多的。。。。。。。。

 

avatar

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

目前评论:2   其中:访客  1   博主  1

    • avatar 123456 4

      没有lock文件,不知道你们的lock文件都是在哪找的。。感觉你们都是复制的呢

        • avatar 吴老二 Admin

          @123456 mongodb启动就会自动生成的,在数据目录下肯定有的