MongoDB 介绍
MongoDB
是一种 NoSQL
数据库,它在数据存储
的形态上和 MySQL
这类关系数据库
有本质区别。MongoDB
存储的基本对象是 Document
,所以我们把它称为一种文档数据库
,而文档的集合
则组成了 Collection
。与 SQL
的概念类比,Collection
对应于 Table
而 Document
对应于 Row
。Document
使用一种 BSON(Binary JSON
)结构来表达,JSON
大家都熟悉,像下面这样。
MongoDB 应用场景
游戏场景:使用
MongoDB
存储游戏用户信息,用户的装备、积分等直接以内嵌文档的形式存储,方便查询、更新物流场景:使用
MongoDB
存储订单信息,订单状态在运送过程中会不断更新,以MongoDB
内嵌数组的形式来存储,一次查询就能将订单所有的变更读取出来社交场景:使用
MongoDB
存储存储用户信息,以及用户发表的朋友圈信息,通过地理位置索引实现附近的人、地点等功能物联网场景:使用
MongoDB
存储所有接入的智能设备信息,以及设备汇报的日志信息,并对这些信息进行多维度的分析视频直播:使用
MongoDB
存储用户信息、礼物信息等
MongoDB 安装
MongoDB
的安装方式比较简单,由于源码安装
比较麻烦,我们的本意只是为了学习 MongoDB
而 yum
种傻瓜式安装是为了更方便现在学习,本文以 yum 方式安装。
工具:
VMware版本号:12.0.0
CentOS版本:7.0
注
: 3.4 版本 MongoDB
不再为 32
位平台(Linux 和 Windows)提供商业支持,本文安装版本为3.4
查看自己 Linux
版本:
uname –a
x86_64
表示 64
位机器i686
表示 32
位机器
整个
MongoDB
(社区版)包含如下软件
# 包含mongod守护程序和关联的配置和init脚本
mongodb-org-server
# 包含mongos守护程序
mongodb-org-mongos
# 包含mongo shell,它是一个连接mongodb的命令行客户端,允许用户直接输入nosql语法管理数据库
mongodb-org-shell
# 包含以下工具的MongoDB:数据导入、导出、备份、恢复等等
mongodb-org-tools
创建 yum 源文件
vim /etc/yum.repos.d/mongodb-org-3.4.repo
将下面内容复制到源文件中
[mongodb-org-3.4]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.4/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-3.4.asc
启动 yum 命令开始安装
yum install -y mongodb-org
如果使用
SELinux
,则必须配置SELinux
,以允许在基于Red Hat Linux
的系统(Red Hat Enterprise Linux 或 CentOS Linux)上启动MongoDB
vim /etc/selinux/config
将 SELINUX
值设置为 disabled
启动 Mongodb (Mongodb 服务端的默认连接端口是
27017
)
# Centos6 启动
$ service mongod start
# Centos7 启动
$ systemctl start mongod
查看是否启动
netstat -tlnup|grep mongod
查看是否占用
27017
端口号
netstat -tlnup|grep 27017
其它控制命令
# 停止 Mongodb 服务
$ service mongod stop
# 重启 Mongodb
$ service mongod restart
设置开机启动
chkconfig mongod on
找到 MongoDB 客户端
find / -name mongo
连接客户端
/usr/bin/mongo
输入测试命令 show dbs
查看当前数据库有哪些
停止 MongoDB 服务器
可以使用Ctrl + c
或者输入exit
退出MongoDB
界面。
注
:进入 MongoDB
界面会出现警告
Server has startup warnings:
2017-03-30T06:40:26.039+0800 I CONTROL [initandlisten]
2017-03-30T06:40:26.039+0800 I CONTROL [initandlisten] ** WARNING: Access control is not enabled for the database.
2017-03-30T06:40:26.039+0800 I CONTROL [initandlisten] ** Read and write access to data and configuration is unrestricted.
2017-03-30T06:40:26.039+0800 I CONTROL [initandlisten]
2017-03-30T06:40:26.040+0800 I CONTROL [initandlisten]
2017-03-30T06:40:26.040+0800 I CONTROL [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/enabled is 'always'.
2017-03-30T06:40:26.040+0800 I CONTROL [initandlisten] ** We suggest setting it to 'never'
2017-03-30T06:40:26.040+0800 I CONTROL [initandlisten]
2017-03-30T06:40:26.040+0800 I CONTROL [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/defrag is 'always'.
2017-03-30T06:40:26.040+0800 I CONTROL [initandlisten] ** We suggest setting it to 'never'
2017-03-30T06:40:26.040+0800 I CONTROL [initandlisten]
这是因为没有配置 MongoDB
的安全功能
,如授权
和身份验证
。当然只是为了学习的话,可以忽略它,但是生产环境必须需要配置
。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。