因为mongodb的安全机制在非正常关闭后需要修复记录
断电之后我处理的方式是在开机的时候修复一下数据库:
-
#!/bin/bash#首先判断.lock文件是否存在,存在就删除它然后修复一下,再重新启动if [ -f
/var/lib/mongodb/mongod.lock ] then#如果mongodb服务已启动的话就关闭它(有点多余,但是以防万一) mongo admin --eval"db.shutdownServer()" ; sudo rm -rf /var/lib/mongodb/mongod.lock ; sudo rm -rf/var/log/mongodb/mongodb.log ; #!/usr/bin/mongod sudo mongod --repair; sudo mongod echo "rmlock file finished ! "; fi
#!/usr/local/bin/foreversudoforever start /home/apk/apkAnalysis/app.js
如果在目录下没有/data/db这个文件夹,我们就需要自己创建一个
sudo mkdir -p /data/db/
sudo chown `id -u` /data/db
Mongodb官方提供的文档里面使用以下命令关闭mongodb
- mongo
- useadmin
- db.shutdownServer()
但是这样每次都要进入mongodb控制端,现在可以用以下命令代替
- mongo admin--eval "db.shutdownServer()"
这是使用mongo的eval功能,上面是默认配置下的命令。如果你有其他配置属性,也得加上,比如端口或者认证信息等。