无法启动 mongodb 服务

Can't start mongodb service

我刚刚安装了 mongo 3。并尝试 运行 它作为 windows 服务器,但收到错误

The MongoDB 3.0 service terminated with the following service-specific error: 
Cannot create another system semaphore.

找不到有关该错误和 mongodb 的任何信息。

检查 mongodb 日志。在我的例子中 mongodb 无法从 mongod.cfg

中找到目录

同时检查 dbpath 和 logpath 的权限。在我的例子中,我已经将 mongo 配置为服务 运行 作为网络服务,但是没有为网络服务提供对这些目录的写访问权限。

这对我来说发生了几次,因为我的 Mac 崩溃导致 Parallels 和我的 Mongo 实例不正常关闭。 mongod.lock 不为空。

这是在开发服务器上,所以我没有备份。我能够使用

进行修复
mongod --repair --repairpath <path to your mongo data>

更多说明here

在我的情况下,这似乎是 mongod.lock 意外关机后的问题。

Detected unclean shutdown - E:\MongoDb\Databases\mongod.lock is not empty.

我删除了 E:\MongoDb\Databases\mongod.lock 并且 mongo 成功启动了。

如果这对其他人有帮助,对我来说是我在命令提示符 window 中手动启动 mongod.exe 所以 windows 服务无法 运行 mongod.exe 在同一端口上已被使用。呸!

我遇到了同样的问题,我的情况是配置错误。来自事件查看器的这个错误不是很有用,而且大多令人困惑,所以每个人都应该先检查 mongo 日志。

在安装 MongoDB 的光盘 C: 上没有足够的 space。经过一些space -- mongod.exe成功启动。

在 Program Files 中的 Windows 10 上安装 .msi 后,我为不同的数据位置创建了服务 C:\Mongo\Data\DB

服务已正确安装但未启动并出现错误 "Cannot create another system semaphore" 因为:

我没有创建所需的文件夹结构。 就这么简单 - 噢!

希望这对某人有所帮助。

在我的例子中,MongoDB 的另一个实例是在同一端口的命令提示符中 运行。

Windows:

有一个有效的方法可以解决这个问题。

首先,尝试删除文件夹"D:\mongodb\data"下的文件storage.bson,或PC中相应路径

如果问题仍然存在,请按顺序尝试执行以下步骤。

例如mongoDB安装了3.6版本,MongoDB的安装路径为"D:\Program Files\MongoDB".

创建文件夹 D:\mongodb\logs,然后在此文件夹中创建文件 mongodb.log

运行 cmd.exe 作为 管理员,

D:\Program Files\MongoDB\Server.6\bin>taskkill /F /IM mongod.exe
D:\Program Files\MongoDB\Server.6\bin>mongod.exe --logpath D:\mongodb\logs\mongodb.log --logappend --dbpath D:\mongodb\data --directoryperdb --serviceName MongoDB --remove
D:\Program Files\MongoDB\Server.6\bin>mongod --logpath "D:\mongodb\logs\mongodb.log" --logappend --dbpath "D:\mongodb\data" --directoryperdb --serviceName "MongoDB" --serviceDisplayName "MongoDB" --install

删除"D:\mongodb\data".

文件夹下的mongod.lockstorage.bson这两个文件

然后使用管理员权限在cmd中输入net start MongoDB,问题就解决了。

对我来说,在 Windows 10 Pro 上全新安装 MongoDB v4.0.3,安装最后未能启动 mongo 服务。

尝试从命令提示符启动 mongod,指向正确的 mongodb.cfg 配置,给我错误:

Unrecognized option: mp

我打开配置并搜索 "mp",找到文件的最后两行:

#snmp:
mp:

我在最后一行前面加了一个 # 并重试,服务启动正常。

¯\_(ツ)_/¯