? ? 某天电脑不听使唤,于是按电源强制关机,结果再开机后,通过rails访问mongodb时一直提示下面的错误:
Could not connect to any secondary or primary nodes for replica set <Moped::Cluster nodes=[<Moped::Node resolved_address="127.0.0.1:27017">]>
? ? 从错误信息瞅着就是连不上mongodb,因为这个mongodb配置之前都是可以用的,所以不大可能说是端口没开通之类的。ps看了下进程,果然,mongodb都是没有启动的。于是试着重新启动下mongodb服务,结果直接fail。
? ? 其实这问题原因和解决起来都很简单,和很多程序一样,mongodb启动的时候会创建一个.lock文件,看了下内容是起个记录pid的作用。当我强制关机的时候,没有给机会让mongodb自己退出,于是这个文件会一直存在,当我下交再启动的时候,mongodb一看这文件已经有进程在了,就没让再启动了。于是把这文件rm掉,再重启启动就好了。
sudo rm /var/lib/mongodb/mongod.lock sudo service mongodb start
?如果rm之后还是没法直接启动,可以试下mongodb自己提供的修复功能。
mongod --repair
?