一、MongoDB简介
MongoDB是一个基于分布式文件存储的数据库,由C++语言编写,旨在为WEB应用提供可扩展的高性能数据存储解决方案。
MongoDB将数据存储为一个文档,数据结构由键值(key=>value)对组成,MongoDB文档类似于JSON对象,字段值可以包含其他文档,数组及文档数组。
MongoDB服务端可运行在Linux、Windows或mac os x平台,支持32位和64位应用,默认端口为27017。
MongoDB支持各种编程语言: Python,Java,C++,PHP,C#等多种语言。
二、下载MongoDB
MongoDB提供了可用于32位系统和64位系统的预编译二进制包(新版本没有了32位系统的安装文件),你可以进入MongoDB官网下载安装,MongoDB的预编译二进制包的下载地址为:https://www.mongodb.com/download-center/community,打开之后会看到如下图,直接点击Download下载即可,也可以在Version中选择你想要的版本:
三、安装MongoDB
双击打开文件进行安装,在安装过程中,可以通过点击 “Custom(自定义)” 按钮来设置你的安装目录。
这里我选择安装在D:\MongoDB这个目录下(安装目录会影响我们后面的配置)。
这里选择直接next:
这里安装 “Install MongoDB Compass” 不勾选,否则可能要很长时间都一直在执行安装,MongoDB Compass是一个图形界面管理工具,这里不安装也是没有问题的,可以自己去下载一个图形界面管理工具,比如Robo3T。
然后,就出问题了。看他的提示说的是 MongoDB Server 服务无法启动,确保你有足够的权限启动系统服务。
直接点击Ignore(忽略就好)
四、配置MongoDB
MongoDB的安装过程是很简单的,但是配置就比较麻烦了,可能会遇到各种各样的问题,需要你有足够的耐心和仔细。
首先要在MongoDB的data文件夹里新建一个db文件夹和在根目录创建一个log文件夹 (如果存在可以不用创建):
然后在log文件夹下新建一个mongo.log:
然后将D:\MongoDB\bin添加到环境变量path中,此时打开cmd窗口运行一下mongo命令,出现如下情况:
这是为什么呢?这是因为我们还没有启动MongoDB服务,自然也就连接不上服务了。那要怎么启动呢?在cmd窗口中运行如下命令:
1 | mongod --dbpath D:\MongoDB\data\db |
需要注意的是:如果你没有提前创建db文件夹,是无法启动成功的。运行成功之后,我们打开浏览器,输入127.0.0.1:27017,看到如下图,就说明MongoDB服务已经成功启动了。
五、配置MongoDB开机自启(挖坑)
打开管理员cmd(PowerShell)
在网上查找的开机自启命令
我尝试使用 net start MongoDB 命令来启动
继续深挖,在任务管理器的服务里面找到 MongoDB,发现状态是 已停止,右键开始,提示 服务没有及时响应启动或控制请求。
再来,在任务管理器下方 打开服务,找到 MongoDB Server,查看它的属性,看看有什么猫腻。
这里可以看到可执行文件的路径是这样的:D:\MongoDB\bin\mongod.exe –config “D:\MongoDB\bin\mongod.cfg” –service
Unrecognized option: mp,未识别的选项:mp
划重点!!
mongod 命令后的 --config 是指定运行 mongod 时的配置文件,于是在 bin 文件夹下找到 mongod.cfg 文件,打开:
1 | # mongod.conf |
2 | # for documentation of all options, see: |
3 | # http://docs.mongodb.org/manual/reference/configuration-options/ |
4 | # Where and how to store data. |
5 | storage: |
6 | dbPath: E:\MongoDB\data |
7 | journal: |
8 | enabled: true |
9 | # engine: |
10 | # mmapv1: |
11 | # wiredTiger: |
12 | # where to write logging data. |
13 | systemLog: |
14 | destination: file |
15 | logAppend: true |
16 | path: E:\MongoDB\log\mongod.log |
17 | # network interfaces |
18 | net: |
19 | port: 27017 |
20 | bindIp: 127.0.0.1 |
21 | #processManagement: |
22 | #security: |
23 | #operationProfiling: |
24 | #replication: |
25 | #sharding: |
26 | ## Enterprise-Only Options: |
27 | #auditLog: |
28 | #snmp: |
29 | mp: |
最后一行的 mp:,然后又在配置文件中列出的网址中翻了一圈,没有发现有 mp: 这个选项。在解决问题时我曾经试着在 C 盘上安装 MongoDB,一切顺利,没有任何报错,所以我对比了一下安装在两个盘上的配置文件,发现差别就只是最后的这个 mp:。
当我把最后一行的 mp: 删掉后,重新启动服务
参考网址:
1.https://blog.csdn.net/qq_20084101/article/details/82261195