mongoDB启动报错 ERROR: child process failed, exited with error number
上面这个错误是今天下午发现,从github down下一个应用,在应用启动前需要redis 启动服务,mongodb启动服务,所以当启动mongodb的时候悲剧出现了:
zhangzhi@moke:~$ mongod --dbpath=/data/club --port=27017 --fork --logpath=/var/log/mongodb/mongodb.log about to fork child process, waiting until server is ready for connections. forked process: 43110 all output going to: /var/log/mongodb/mongodb.log log file [/var/log/mongodb/mongodb.log] exists and couldn't make backup [/var/log/mongodb/mongodb.log.2014-11-17T06-55-20]; run with --logappend or manually remove file: errno:13 Permission denied Bad logpath value: "/var/log/mongodb/mongodb.log"; terminating. ERROR: child process failed, exited with error number 1
出现这种错误的原因:
大部分是因为mongodb 服务在不正常关闭的情况下,mongod 被锁,想想可能是上次无故死机造成的.
如何解决这种问题:
删除 mongod.lock 文件和日志文件 mongodb.log.2014-11-17T06-55-20 ,如果有必要把 log日志全部删除
mongod --repair --dbpath /data/db / --repairpath /tmp/mongodb
root@moke:~# mongod --repair --dbpath /data/db/ --repairpath /tmp/mongodb Mon Nov 17 15:19:15.374 You must use a --repairpath that is a subdirectory of --dbpath when using journaling Mon Nov 17 15:19:15.375 dbexit: Mon Nov 17 15:19:15.375 shutdown: going to close listening sockets... Mon Nov 17 15:19:15.375 shutdown: going to flush diaglog... Mon Nov 17 15:19:15.375 shutdown: going to close sockets... Mon Nov 17 15:19:15.375 shutdown: waiting for fs preallocator... Mon Nov 17 15:19:15.376 shutdown: lock for final commit... Mon Nov 17 15:19:15.376 Assertion failure c src/mongo/db/client.h 235 0x1033e4d80 0x1033b85e7 0x10305cd47 0x10305cb1a 0x10305ce97 0x10305e33d 0x10305fd75 0x10312e69d 0x102ef6c63 0x102ef26fd 0x7fff8dd185c9 0 mongod 0x00000001033e4d80 _ZN5mongo15printStackTraceERSo + 64 1 mongod 0x00000001033b85e7 _ZN5mongo12verifyFailedEPKcS1_j + 295 2 mongod 0x000000010305cd47 _ZN5mongo4Lock26ParallelBatchWriterSupport6relockEv + 391 3 mongod 0x000000010305cb1a _ZN5mongo4Lock26ParallelBatchWriterSupportC2Ev + 26 4 mongod 0x000000010305ce97 _ZN5mongo4Lock10ScopedLockC2Ec + 39 5 mongod 0x000000010305e33d _ZN5mongo4Lock10GlobalReadC2Ei + 29 6 mongod 0x000000010305fd75 _ZN5mongo11readlocktryC2Ei + 53 7 mongod 0x000000010312e69d _ZN5mongo6dbexitENS_8ExitCodeEPKc + 893 8 mongod 0x0000000102ef6c63 _ZL25processCommandLineOptionsRKSt6vectorISsSaISsEE + 14755 9 mongod 0x0000000102ef26fd main + 637 10 libdyld.dylib 0x00007fff8dd185c9 start + 1 Mon Nov 17 15:19:15.420 shutdown failed with exception Mon Nov 17 15:19:15.420 dbexit: really exiting now
然后 mongod --dbpath=/data/db --port=27017 --fork --logpath=/val/log/mongodb/mongodb.log
root@moke:~# mongod --dbpath=/data/db --port=27017 --fork --logpath=/var/log/mongodb/mongodb.log about to fork child process, waiting until server is ready for connections. forked process: 43144 all output going to: /var/log/mongodb/mongodb.log log file [/var/log/mongodb/mongodb.log] exists; copied to temporary file [/var/log/mongodb/mongodb.log.2014-11-17T07-21-41] child process started successfully, parent exiting
OK,mongodb 后台启动成功.