概述
MongoDB 是一个基于分布式文件存储的数据库。由 C++ 语言编写。旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。
MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。它支持的数据结构非常松散,是类似json的bson格式,因此可以存储比较复杂的数据类型。Mongo最大的特点是它支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。
使用场景
主要场景如下:
- 网站实时数据处理。它非常适合实时的插入、更新与查询,并具备网站实时数据存储所需的复制及高度伸缩性。
- 缓存。由于性能很高,它适合作为信息基础设施的缓存层。在系统重启之后,由它搭建的持久化缓存层可以避免下层的数据源过载。
- 高伸缩性的场景。非常适合由数十或数百台服务器组成的数据库,它的路线图中已经包含对MapReduce引擎的内置支持。
部署
单机部署-yum安装
配置yum源
新建文件 /etc/yum.repos.d/mongodb-org-4.2.repo
[mongodb-org-4.2]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.2/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-4.2.asc
安装
sudo yum install -y mongodb-org
若要安装特定版本,请分别指定每个组件包,如:
sudo yum install -y mongodb-org-4.2.8 mongodb-org-server-4.2.8 mongodb-org-shell-4.2.8 mongodb-org-mongos-4.2.8 mongodb-org-tools-4.2.8
若不想yum升级时MongoDB意外升级,可以配置/etc/yum.conf
排除MongoDB:
exclude=mongodb-org,mongodb-org-server,mongodb-org-shell,mongodb-org-mongos,mongodb-org-tools
启动
sudo systemctl start mongod
如果报以下错误:
Failed to start mongod.service: Unit mongod.service not found.
解决:
sudo systemctl daemon-reload
开机自启:
sudo systemctl enable mongod
配置
# 允许其他网络访问mongodb
sed -i 's#127.0.0.1#0.0.0.0#' /etc/mongod.conf
systemctl restart mongod
创建管理员用户
运行mongo shell
# 默认端口为27017
mongo
创建用户
> use admin
> db.createUser({user:"admin",pwd:"password",roles:["root"]})
# 第一个用户添加完成后,便需要认证才能继续添加其他用户
> db.auth("admin", "password")