mongodb启动报错ERROR: child process failed, exited with error number 14

今天准备对测试环境的mongodb进行压测,测试一下单实例的情况亿级数据在建立普通索引的情况下的查询性能。然而出师未捷身先死,在插入数据的时候被我开的五个线程搞的锁死了(因为mongo的索引默认是实时建立,在过程中会锁死该集合所有操作,无法读写,在数据量大的时候就会出现锁死的假象)T T .. 。 

接着去服务器上命令关闭,结果一样半天关不了......然后一想反正是测试环境,一怒之下杀了进程(当时我的内心:!哇咔咔咔让你拽,不行了吧!哈哈哈哈哈......)。

然后重启的时候我又懵逼了...发现重启不了了,报了个ERROR: child process failed, exited with error number 14错误TT |||。好吧搜呗,看了一些类同问题有让删.log的还有让删.lock的但最终的解决不了问题。后来可能是因为程序员改BUG的习惯我突然想起了查log,当初配mongo的时候我清晰的记的mongo的log体系很健全(废话,毕竟也是一个很成熟的DB)。然后我就进到配的日志路径下,打开日志(因为之前查询解决方案把之前的日志移到别的地方了,所以cat的时候一下就打开了),打开后一看,原因就很明显了!!!大致是说之前关闭的时候索引未建立完,所以造成这次启动不了!并提示可以使用--noIndexBuildRetry跳过该所以的建立。

于是我用了--noIndexBuildRetry命令,完美启动了!然后我又特意看了一下我的数据发现之前的那个未完成的索引没了,所以mongo的跳过就是说直接删掉了,于是这次我打开日志,然后建立索引好处是能清晰的看到进度。另外索引建立还可以使用后台的方式createIndex({“key”:1},{background:true})这样可以在不影响读写的情况下后台建立索引,好处就是不用锁死该集合了,坏处就是整个过程会更慢一些。

下面总结一下解决该问题步骤:

1 进入mongo的日志目录打开日志文件(一般叫mongodb.log)

2 查看具体原因

3 分析问题,得出结论。像我这次就是./mongod --config /usr/local/mongodb/bin/conf/mongodb.conf --noIndexBuildRetry解决了问题。

这个错误通常是由于MongoDB启动失败导致的,具体原因可能有很多,例如: - MongoDB配置文件中的参数设置不正确。 - MongoDB数据目录的权限不正确。 - MongoDB数据目录已经损坏或者磁盘空间不足。 - MongoDB二进制文件或者依赖库文件损坏或者不存在。 要解决这个问题,你可以尝试以下几种方法: 1. 检查MongoDB配置文件中的参数设置是否正确。可以查看MongoDB的日志文件,例如: ``` tail -f /var/log/mongodb/mongod.log ``` 如果发现日志中有错误信息,可以根据错误信息来修复问题。 2. 检查MongoDB数据目录的权限是否正确。可以使用以下命令来设置MongoDB数据目录的权限: ``` sudo chown -R mongodb:mongodb /var/lib/mongodb sudo chmod -R 755 /var/lib/mongodb ``` 其中"mongodb"是MongoDB服务运行时所使用的用户。 3. 检查MongoDB数据目录是否已经损坏或者磁盘空间不足。可以使用以下命令来检查MongoDB数据目录的磁盘空间: ``` df -h /var/lib/mongodb ``` 如果发现磁盘空间不足,可以尝试清理一些不必要的文件或者扩大磁盘空间。 4. 检查MongoDB二进制文件或者依赖库文件是否损坏或者不存在。可以使用以下命令来检查MongoDB二进制文件和依赖库文件: ``` md5sum /usr/bin/mongod md5sum /usr/lib64/libbson-1.0.so.0 md5sum /usr/lib64/libmongoc-1.0.so.0 ``` 如果发现文件的md5值不正确,可以重新安装MongoDB或者修复文件。 希望以上方法能够帮助你解决问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值