1 MongoDB简介
MongoDB
是一个基于分布式文件存储
的数据库。由C++
语言编写,在高负载的情况下,添加更多的节点,可以保证服务器性能。旨在为 WEB
应用提供可扩展的高性能数据存储解决方案
MongoDB
将数据存储为一个文档,数据结构由键值(key=>value
)对组成。MongoDB
文档类似于JSON
对象。字段值可以包含其他文档,数组及文档数组
MongoDB
是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。
特点:
-
MongoDB
是一个面向文档存储的数据库,操作起来比较简单和容易 - 可以在
MongoDB
记录中设置任何属性的索引 (如:FirstName="Sameer",Address="8 Gandhi Road")来实现更快的排序 - 可以通过本地或者网络创建数据镜像,这使得
MongoDB
有更强的扩展性。 - 如果负载的增加(需要更多的存储空间和更强的处理能力) ,它可以分布在计算机网络中的其他节点上这就是所谓的分片
- 支持丰富的查询表达式。查询指令使用
JSON
形式的标记,可轻易查询文档中内嵌的对象及数组 - 使用
update()
命令可以实现替换完成的文档(数据)或者一些指定的数据字段 -
Map
函数调用emit(key,value)
遍历集合中所有的记录,将key
与value
传给Reduce
函数进行处理,Map
函数和Reduce
函数是使用Javascript
编写的,并可以通过db.runCommand
或mapreduce
命令来执行MapReduce
操作 -
GridFS
是MongoDB
中的一个内置功能,可以用于存放大量小文件
2 windows下安装
MongoDB
官网https://mongodb.com ,进入后选中SoftWare
有Community
(社区版)和 Enterprise
(企业版),根据需要选择适合自己的版本就好,有两个版本msi
和zip
2.1 Zip安装
2.1.1 解压
解压后的示例如下:比较简单
在这里插入图片描述
2.1.2 配置mongodb配置文件
MongoDB
将数据目录存储在 db
目录下。但是这个数据目录不会主动创建,我们在安装完成后需要创建它
在另外的文件夹创建数据目录data\db
比如我是建在了E:\SoftWare-SQL\MongoDB\
,然后在bin
目录内执行命令
mongod --dbpath E:\SoftWare-SQL\MongoDB\data\db
注意:
直接执行mongod
是因为切换到了bin
文件夹内部:E:\SoftWare-SQL\MongoDB\mongodb-win32-x86_64-2012plus-4.2.1\bin
在data
文件夹下创建log
文件夹
创建mongod.cfg
配置文件放置于bin
文件夹下
systemLog:
destination: file
logAppend: true
path: E:\SoftWare-SQL\MongoDB\data\log\mongod.log
storage:
dbPath: E:\SoftWare-SQL\MongoDB\data\db
安装MongoDB
服务
mongod --config "E:\SoftWare-SQL\MongoDB\mongodb-win32-x86_64-2012plus-4.2.1\bin\mongod.cfg" --install
附:卸载MongoDB
服务
mongod --remove
执行后不报错那么查看服务如下:
image
此步是为了把mongodb
服务装进windowns
服务,而通过net start MongoDB
启动命令和net stop MongoDB
关闭服务
解压后把此路径添:E:\SoftWare-SQL\MongoDB\mongodb-win32-x86_64-2012plus-4.2.1\bin
加到系统变量中
在
DOS
窗口使用mongod --version
验证是否安装成功
2.1.3 安装报错
Error parsing YAML config file: yaml-cpp: error at line 32, column 1: end of map not found
错误原因是:mongodb 3.0
之后配置文件采用YAML
格式,这种格式非常简单,使用<key>:<value>
表示,开头使用空格
作为缩进。需要注意的是,:
之后有value
的话,需要紧跟一个空格,如果key
只是表示层级,则无需在:
后增加空格(比如:systemLog:
后面既不需要空格)。按照层级,每行2个空格
缩进,依次轮推,顶层则不需要空格缩进。如果格式不正确,将会出现上面的错误
2.2 MSI安装
2.2.1 win7admin下安装
使用msi
安装没有这么多问题,数据库文件和日志在启动时就指定好,bin
文件夹内直接有mongod.cfg
文件,直接把mongodb
服务装进windows
就可以了
在msi
安装之前会自动指定数据文件夹和日志文件夹,Mongodb
会主动在安装目录下创建log
和data
文件,这相比较早期版本有了改善 ,早期需要自己手动创建
此时,可以在data
下创建数据文件夹db
,然后在cmd
进入MongoDB\bin
目录下然后执行mongod --dbpath C:\MongoDB\data\db
命令(这条命令是开启服务,它会一直运行,只要你要使用Mongodb
,这个窗口就不能关)
注意:
经测试此步操作的db
可以有也可以没,在bin
文件夹内不能使用mongod
开启命令,必须使用windonws
命令开启服务,然后在bin
文件夹内使用mongo
开启客户端就可以了
如下是安装时的截图:
取消按照可视化界面(
compass
客户端可视化界面可以另外下载。但要是选中了,那就是安装一天也完成不了):此处是安装compass客户端
在这里插入图片描述
完全安装后如下:
在这里插入图片描述
2.2.2 win10家庭版安装遇坑
由于win10
电脑是最近新买的,版本是家庭中文版,所以不舍得破解成专业版,只能想办法让当前登录用户拥有administrators
的权限了,先看看遇到的报错的坑
2.2.2.1 权限问题
坑一:这是提示权限不足导致的,但是右键使用管理员权限
打开并没用
由于
win10
家庭中文版没有用户组的概念所以网上说的那些通过这个命令来改,就算了,下面是通过安全模式赋予普通用户的administrators
权限主要步骤:
设置->更新和安全->恢复-高级启动->立即重启->疑难解答-高级选项-启动设置-重启-4
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述 在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
进入安全模式后按WIN+R
组合键,打开control userpasswords2
,属性-组成员-管理员-确定就大功告成啦,重启后想修改什么安装什么都没阻碍了
在这里插入图片描述
注意:
修改完后若还是不行就关机等几秒后,再开机,这样重复几次就可以了,而且,只有再安全模式下修改的权限组才可以装成功,在正常模式下修改权限还是会报权限不足问题
3 Linux下安装
3.1 解压安装
解压上传的压缩包到指定文件夹
tar -zxvf mongodb-linux-x86_64-rhel70-5.0.6.tgz -C ../software/
3.2 创建文件夹
mkdir conf (启动配置文件)
mkdir logs(日志文件)
mkdir data(数据存放文件)
在conf
目录下新建配置文件mongod.conf
并编辑
port=20017
dbpath=/home/software/mongodb-5.0.6/data (创建的data目录路径)
logpath=/home/software/mongodb-5.0.6/logs/mongod.log(创建的日志文件路径)
fork=true(让程序在后台启动)
bind_ip=0.0.0.0(方便让其他服务能连接)
3.3 启动服务
启动服务
在mongodb
根目录执行启动mongod
后台进程:
./bin/mongod -f conf/mongod.conf
出现以下日志说明启动成功
3.4 脚本启动关闭
在 /etc/init.d
目录下 建立mongod
脚本,就可实现自动启动
如下脚本在root
环境亲测可用
case $1 in
start) $MONGODB_HOME/bin/mongod -f $MONGODB_HOME/conf/mongod.conf;;
stop) $MONGODB_HOME/bin/mongod -f $MONGODB_HOME/conf/mongod.conf --shutdown;;
*) echo "require start|stop" ;;
esac
网友评论