今天在測試的時候mongodb突然掛掉了,重啓服務一直出現下面的錯誤(數據庫版本 MongoDB shell version v3.6.2)
about to fork child process, waiting until server is ready for connections.
forked process: 19656
ERROR: child process failed, exited with error number 14
To see additional information in this output, start without the "--fork" option
網上的說法主要有下面兩種原因:
1.使用kill -9 命令非法關閉數據庫
2.文件沒有權限
下面2中方法都嘗試了一遍還是不行。
一、嘗試網絡上的方法
1.刪除mongod.lock文件
rm -f mongod.lock
啓動服務提示失敗
2.運行下面的命令
mongod --dbpath /home/www/mongodb/data/db --repair
啓動服務還是失敗
二、通過mongo日誌查找問題原因
日誌信息中提示是數據庫異常關閉導致索引丟失而造成數據庫啓動失敗
1.刪除mongodb/data 目錄下的mongod.lock文件
rm -f mongod.lock
2.刪除mongo的日誌文件
rm -f mongodb.log
3.運行repair 命令修復數據(/home/www/mongodb/data/db爲mongo的dbpath)
mongod --dbpath /home/www/mongodb/data/db --repair
啓動數據庫
mongod --config /var/mongodb/data/mongodb.conf
折騰了2個小時服務終於啓動成功了。
參考
https://docs.mongodb.com/manual/tutorial/recover-data-following-unexpected-shutdown/