用kill -9 杀进程mongodb后,重新启动,产生错误:about to fork child process, waiting until server is ready for connection此异常。
错误如图:
原因分析:
出现这种错误的原因:
大部分是因为mongodb 服务在不正常关闭的情况下,mongod 被锁,想想可能是上次无故死机造成的.
情况1:一般般解决方法:
1、sudo kill -9 4018 杀掉子进程
2、进入mongodb安装目录,删除data目录下的mongod.lock文件
3、 bin目录下:./mongod --repair
4、再次重启 :./mongod -f mymongo.conf (其中mymongo.conf配置了我的数据库文件日志和数据db存储路径)
情况2:配置文件写错
出现以上错误,或者启动失败的情况,还有可能是你的数据库路径和log路径写错了;先检查一遍有没有错误,例如数据库文件的存放路径,不能是具体文件,而要是文件夹,但是日志的话要是具体文件,如下所示
dbpath=/data/mongodb/master
logpath=/usr/local/mongodb/logs/master.log
pidfilepath=/usr/local/mongodb/master.pid
情况3:检查你的磁盘是不是写满了
我就遇到过这种情况,很坑人
检查磁盘使用情况
看到我的挂载的文件制定盘符已经写满了。
那么久检查一下磁盘空间使用情况吧:
使用find命令找到大于指定大小的文件:
[root@localhost data]# find / -type f -size +10G
将输出:
/usr/local/apache2/logs/access_log
马上可以通过du命令查看此文件的大小:
[root@localhost data]# du -h /usr/local/apache2/logs/access_log
24G /usr/local/apache2/logs/access_log
我们可以重复执行find命令来查找大文件,例如:find / -type f -size +5G 找到大于5G的文件。 find / -type f -size +1G 找到大于1G的文件
释放完空间后(注意但你删除完大文件之后,可能没有办法立即释放磁盘空间,此时需要释放相应的应用对空间的link链接【停止服务】,这样才能释放空间)
然后再次重启MongoDB就可以正常启动了