MongoDB的简单学习1-安装
一、简单了解
1.NoSQL简介
NoSQL是Not Only SQL的缩写,它指的是非关系型的数据库,是以Key-Value的形式存储,和传统的关系型数据库不一样,不一定遵循传统数据库的一些基本要求,比如说:遵循SQL标准、ACID属性、表结构等等,这类数据库主要有以下特点:非关系型的、分布式的、开源的、水平可扩展的。
常见的NoSQL数据库:Redis 、MongoDB、BigTable等
2.MongoDB简介
MongoDB是一个基于分布式文件存储的数据库,由c++语言编写,为WEB应用提供可扩展的高性能数据存储解决方案。MongoDB属于非关系数据库,也不能说完全属于,更像是介于关系数据库和非关系数据库之间的产品,是非关系数据库中功能最丰富,很像关系型数据库。
他的语法类似Javascript面向对象的查询语言,它是一个面向集合的,模式*的文档型数据库。
面向集合(Collenction-Orented)
意思是数据被分组存储在数据集中被称为一个集合(Collenction) 。每个集合在数据库中都有一个唯一的标识名,并且可以包含无限数目的文档。集合概念类似关系型数据库中的表,不同的是它不需要定义任何模式。
模式*(schema-free)
意思是集合里面没有行和列的概念,下面两个记录可以存在于同一集合中:
{“name”:"hanchao"}
{"age":"30"}
文档型(documents)
意思是我们存储的数据是键-值对的集合,键是字符串,值可以是数据类型集合中的任何类型,包含数组和文档,每一个文档相当于关系型数据库中的一条记录。
3.特性
MonoDB的特点是高性能、易部署、易使用,存储数据非常方便,主要特性有:
面向集合存储,易于存储对象类型的数据
模式*
支持动态查询
支持完全索引,包含内部对象
支持复制和故障恢复
使用高效的二进制数据存储,包括大型对象(如视频、图片等)
*处理碎片,以支持云计算层次的扩展性
文件存储格式为BSON(一种JSON的扩展)
4.适用场景
持久化缓存层
高效的实时性
用于对象以及JSON数据的存储
高伸缩性的场景
大尺寸,低价值的数据存储
4.不适用的场景
要求高度事务性的系统
复杂多表的查询
二、win7安装
1.下载
下载地址:https://www.mongodb.com/download-center#community
注意:安装过程中点击:"Custom(自定义)" 按钮来设置你的安装目录"
2.启动
新建立一个文件夹db:D:\softhan\mongodb\data\db 用于存放我们的MongoDB数据。
cmd到安装目录下,比如我的是:D:\programhan\mongodb\Server\3.6\bin
启动MongDB: mongod --dbpath D:\softhan\mongodb\data\db
加入日志的启动:
建立一个日志文件,比如我放在: D:\softhan\mongodb\data\log\mongodb.log
启动:
mongod --dbpath D:\softhan\mongodb\data\db --logpath D:\softhan\mongodb\data\log\mongodb.log
每次使用都手动启动比较麻烦,加入到windows的Services服务中:
mongod --dbpath "D:\softhan\mongodb\data\db" --logpath "D:\softhan\mongodb\data\log\mongodb.log" --install
这样每次只需要启动服务就行了!根据情况确定是否要开机启动!services.msc
启动成功的标志:
在浏览器下打开:http://localhost:27017/,如果出现下图效果则说明服务已经启动成功:
三、Linux安装
1.下载
下载地址:https://www.mongodb.com/download-center?jmp=nav#community
我用的是Centos7,Centos是红帽操作系统的开源分支。安装RHEL 7 Linux 64-bit x64这个版本即可。
wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-3.6.4.tgz
你可以通过上面的方式直接下载,或通过官网下载!
我解压后,并修改名字,放到/usr/local/mongodb
2.启动
#解压
tar -zxvf mongodb-linux-x86_64-rhel70-3.6.4.tgz
#改名
mv mongodb-linux-x86_64-rhel70-3.6.4 mongodb
#建立存储位置和日志位置
cd mongodb
mkdir db
mkdir logs
cd logs
touch mongodb.log
#启动方式1:
/usr/local/mongodb/bin/mongod --dbpath=/usr/local/mongodb/db/ --logpath=/usr/local/mongodb/logs/mongodb.log --fork
启动成功后,查看:
#启动方式2:
#建立conf文件
mkdir conf
cd conf
touch mongodb.conf
#这是mongodb.conf内容
dbpath=/usr/local/mongodb/db
logpath=/usr/local/mongodb/logs/mongodb.log
port=27017
fork=true
启动命令:
/usr/local/mongodb/bin/mongod --config /usr/local/mongodb/conf/mongodb.conf
3.关闭
建议用pkill mongod或killall mongd ,而不建议用kill -9 进程号,因为这样再也起不来Mongod了,此时需要去db中删掉mongod.lock 。
4.开机启动
vi /etc/rc.d/rc.local
#添加mongodb的开机启动
/usr/local/mongodb/bin/mongod --config /usr/local/mongodb/conf/mongodb.conf
问题:开机启动无效!!!
执行>ll /etc/rc.local命令,发现/etc/rc.local映射文件是/etc/rc.d/rc.local
再ll /etc/rc.d/rc.local发现这个文件没有执行权限(少了x);
其实vi /etc/rc.local有这样一段话
# Please note that you must run 'chmod +x /etc/rc.d/rc.local' to ensure
# that this script will be executed during boot.
所以执行chome +x /etc/rc.d/rc.local命令后,启动可以执行这个文件了。
但是还有一个问题,需要保证rc.local文件里面执行的脚本都是可执行的,否则依然无效。
参考:
https://www.cnblogs.com/xll1025/p/6443786.html
https://www.cnblogs.com/wyhlightstar/p/6271251.html
https://www.cnblogs.com/weiweictgu/p/5517717.html
转载于:https://my.oschina.net/hanchao/blog/1815286