MongoDB服务1053错误、1067错误处理

起因

本人的MongoDB服务在windows服务器运行,且一直有读写的操作。因为服务器突然断电导致出错,再次重启服务器后无法正常运行MongoDB服务。

查阅了网上的众多资料后觉得实在很碎片化,于是记录下自己遇到的问题和解决成功的办法,如果你同样遇到了意外断开MongoDB服务(尤其是有读写操作运行的时候),那么极有可能遇到这两个错误,希望对你有用。

解决问题1:无法启动MongoDB服务

使用命令行工具或者windows服务启动MongoDB遇到如下报错,无法启动:

这个错误的解决办法很简单:删除该服务并重新创建一个服务。 MongoDB服务相当于注册表的一条命令,并不影响本地的数据,可以随便进行删除和重新创建。

  1. 删除原有的MongoDB服务
cmd 复制代码
 sc.exe delete MongoDB
  1. 创建新的MongoDB服务 这个方式有多种,一般分为两种创建的方式:
  • 一种直接命令输入指定数据库的存储路径 dbpath(可以有本地数据,不会影响) 和日志的路径logpath;
  • 另一种则是使用config文件(位于MongoDB安装目录的bin目录下的mongod.cfg文件,一般位于C:\Program Files\MongoDB\Server\5.0\bin>),在config文件里面写入配置如数据库存储路径和日志,以及是否开启安全验证等,这样就可以避免多次直接在命令行中输入路径。

为了方便使用,这里我们编辑一个简单的cfg文件(也可以编辑原本的mongod.cfg),在其中写入路径配置

cfg 复制代码
##数据文件
dbpath=E:\MongoDB\data

##日志文件
logpath=E:\MongoDB\log\mongo.log

然后在当前的bin目录下运行以下命令,表示按照config创建一个MongoDB服务。

cmd 复制代码
 mongod.exe --config "C:\Program Files\MongoDB\Server\5.0\bin\mongod.cfg" --install --serviceName "MongoDB" --serviceDisplayName "MongoDB"

创建成功是没有返回结果的,此时可以通过任务管理器-服务-打开服务-MongoDB)看到在启动的状态。

  1. 尝试启动MongoDB 这里可以可以尝试启动一下,如果直接可以启动说明数据库没有数据文件损坏。如果没有什么数据文件,推荐可以直接在新的文件夹下存储数据,也就是将dbpath路径置为新的文件夹。
cmd 复制代码
net start MongoDB

解决问题2: 进程意外错误

这个问题有多个原因,网上的处理方式一般是不针对数据受损的情况的,如果数据不受损,那么可以直接将dbpath路径下的mongod.lock文件删除(锁文件,不影响实际数据),然后再次使用net start命令启动,如果还是不行那么考虑数据受损的情况,那就使用repair命令修复。

使用repair命令,扫描所有的本地数据修复(耗时长)

(使用前删除lock文件)

该命令是MongoDB专门应对数据文件受损的一种修复机制,原理是删除所有搜索的索引和数据文档。所以最好在运行该命令前对数据文件进行备份!

直接在MongoDB的bin目录下运行以下命令:

cmd 复制代码
mongod.exe --dbpath E:\MongoDB\data --repair

该命令会对dbpath中的所有的数据文件进行扫描、检查、索引的重构。如果数据量大的话,时间耗费也会很久。参考本人千万级别的数据文档,运行了近一天一夜才结束。

在结束后会详细报告修复的集合。

最后运行执行启动MongoDB,这次一般都可以顺利进行执行。

cmd 复制代码
net start MongoDB

最后一定不要随便给正在读写的MongoDB数据库意外断开!!

相关推荐
SL-staff19 小时前
技术实践:将Excel自动升级为可搜索的知识节点(JVS平台实现)
mongodb·elasticsearch·知识图谱·jvs平台·语义解析·企业文档管理·excel结构化
ClouGence1 天前
数据库迁移工具 CloudCanal v6.5.0.0 发布:新增 TDSQL PostgreSQL 多条链路,支持 MongoDB 双向同步
数据库·mysql·mongodb
浪子明X2 天前
MongoDB 迁移方案评审:用双写窗口和回放样本控制切换风险
数据库·mongodb
蜗牛互联网6 天前
MongoDB Atlas Agent Engine之后,如何用版本门禁防止陈旧写入
java·数据库·人工智能·后端·mongodb
天空'之城11 天前
单片机基础核心知识点汇总(四十六)
数据库·单片机·mongodb
Dragon_qu·x12 天前
MongoDB 高可用集群部署
运维·数据库·mongodb·k8s·helm
MayBaymax19 天前
MongoDB 索引与事务
java·数据库·mongodb
&不羁之风&19 天前
从 MySQL 到 MongoDB:80 万系统日志(sys_log)平滑迁移完整实战(含 Windows 环境 mongoimport 安装与避坑)
mysql·mongodb
那人如此可好22 天前
MongoDB常用命令大全
mongodb·db
MayBaymax22 天前
MongoDB 基础概念
java·数据库·mongodb