最近要在服务器配置MongoDB服务,现把安装服务中遇到的坑记录一下,避免有人遇见跟我一样的问题。
MongoDB的下载安装这里就不过多描述了,
安装参考地址https://www.runoob.com/mongodb/mongodb-window-install.html
从 MongoDB 4.0 开始,默认情况下,你可以在安装期间配置和启动 MongoDB 作为服务,并在成功安装后启动 MongoDB 服务。也就是说,MongoDB 4.0 已经不需要像以前版本那样输入一堆命令行来将 MongoDB 配置成 Windows 服务来自动运行了,方便了很多。只要安装过程中选择好\mongodb\data\db,和\mongodb\log路径就可以。
现转入正题
在安装完成时出现了问题。看他的提示说的是 MongoDB Server
服务无法启动,确保你有足够的权限启动系统服务。
我这里明明是管理员Admin登录安装,应该不存在没有权限的问题啊!郁闷!这里无法解决只能现忽略跳过。
然后根据官网上的教程来手动启动服务试一下,在 MongoDB 安装文件夹的 bin 文件夹下,使用管理员权限打开 PowerShell:
然后输入:
.\mongod --dbpath="E:\MongoDB\data"
从返回的命令来看没问题,最后一条是等待端口 27017 上的连接,所以我在浏览器中输入了 127.0.0.1:27017
:
可以访问,那证明Mongodb是安装成功了。
但为什么服务器启动失败呢?
再看系统服务里面也有MongoDB服务也存在,但服务是停止状态
尝试使用 net start MongoDB
命令来启动,失败:
继续深挖,在任务管理器的服务里面找到 MongoDB,右键开始,查看它的属性。
这里可以看到可执行文件的路径是这样的:E:\MongoDB\bin\mongod.exe --config "E:\MongoDB\bin\mongod.cfg" --service
。
也就是说,启动 MongoDB Server 服务时运行的也是这条命令,于是我手动运行了这条命令:
Unrecognized option: mp
,未识别的选项:mp,不知道这是个啥?网站搜了很久也没有相关资料。
重点!!
mongod 命令后的 --config
是指定运行 mongod 时的配置文件,于是在安装文件夹的 bin 文件夹下找到 mongod.cfg
文件,打开:
# mongod.conf
# for documentation of all options, see:
# http://docs.mongodb.org/manual/reference/configuration-options/
# Where and how to store data.
storage:
dbPath: E:\MongoDB\data
journal:
enabled: true
# engine:
# mmapv1:
# wiredTiger:
# where to write logging data.
systemLog:
destination: file
logAppend: true
path: E:\MongoDB\log\mongod.log
# network interfaces
net:
port: 27017
bindIp: 127.0.0.1
#processManagement:
#security:
#operationProfiling:
#replication:
#sharding:
## Enterprise-Only Options:
#auditLog:
#snmp:
mp:
终于发现隐藏在最后一行的 mp:
当我把最后一行的 mp:
删掉后,重新启动服务,成功了!!!
最后将 bin 文件夹设置进系统环境变量可以大大方便在命令提示符中使用 mongo 等命令,这里就不细说了。
至于为什么会在mongod.cfg
文件会无故多出来这么令人抓狂的一行,实在搞不明白。
如果用以上处理方法启动时还提示“MongoDB服务无法启动,windows提示发生服务特定错误:100”
那可能是之前你在启动MongoDB服务时执行了很多命令,如使用 msi 进行安装,由于 MongoDB 4.0 自动安装配置成 Windows 服务,也就不需要大部分教程里的像
mongod --dbpath "C:\MongoDB\data\db" --logpath "C:\MongoDB\data\log\mongo.log" --install --serviceName "MongoDB"
这样的语句了,除非下载的是单纯的压缩包,我看到很多 4.0 的教程下载的是 msi 安装包,都还在使用命令提示符配置 MongoDB 成服务,所以这里就不要多此一举了.
好现在来解决这个“MongoDB服务无法启动,windows提示发生服务特定错误:100”问题
如果你碰到了和我一样的问题,那么现在你只需要进行下面两个操作,应该就能解决啦~
找到E:\MongoDb\data\db这个目录
1.找到你数据库文件夹中的这两个文件 mongod.lock storage.bson
2.删掉他们
现在再来重新启动MongoDB服务,看不是解决了
接下来远程连接一下看看是否成功
我这里用的是NoSQL Manager for MongoDB这个界面管理工具
下载地址:https://www.mongodbmanager.com/
打开工具输入服务器IP地址和端口号
这是你会发现远程连接不上。
莫急
MongoDB 服务器启动后,不进行配置,其他机器无法访问,需要进行如下配置:
1、找到你的mongod.cfg配置文件,增加bindIp的配置,记住要想让其他机器访问,需要绑定为0.0.0.0
此配置文件的内容格式为yml,编写时注意空格,否则,无法启动服务器。
systemLog:
destination: file
path: d:\data\log\mongod.log
storage:
dbPath: d:\data\db
net:
bindIp: 0.0.0.0
port: 27017
2、打开防火墙设置——让服务器的防火墙入站规则添加一个新规则——允许端口27017;