无法启动 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.lock
和storage.bson
这两个文件
然后使用管理员权限在cmd中输入net start MongoDB
,问题就解决了。
对我来说,在 Windows 10 Pro 上全新安装 MongoDB v4.0.3,安装最后未能启动 mongo 服务。
尝试从命令提示符启动 mongod,指向正确的 mongodb.cfg
配置,给我错误:
Unrecognized option: mp
我打开配置并搜索 "mp",找到文件的最后两行:
#snmp:
mp:
我在最后一行前面加了一个 # 并重试,服务启动正常。
¯\_(ツ)_/¯
我刚刚安装了 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.lock
和storage.bson
这两个文件
然后使用管理员权限在cmd中输入net start MongoDB
,问题就解决了。
对我来说,在 Windows 10 Pro 上全新安装 MongoDB v4.0.3,安装最后未能启动 mongo 服务。
尝试从命令提示符启动 mongod,指向正确的 mongodb.cfg
配置,给我错误:
Unrecognized option: mp
我打开配置并搜索 "mp",找到文件的最后两行:
#snmp:
mp:
我在最后一行前面加了一个 # 并重试,服务启动正常。
¯\_(ツ)_/¯