一、mongodb的介绍
什么是mongODB?
1.MongoDB 是一个基于分布式文件存储的数据库。由 C++ 语言编写。旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。
MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。
MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨在为web应用提供可扩展的高性能数据存储解决方案。MongoDB是一个介于关系型数据库和非关系型数据库之间的产品,是非关系型数据库当中功能最丰富,最像关系型数据库的。它支持的数据结构非常松散,是类似JSON的BSON格式,因此可以存储比较复杂的数据类型。MongoDB最大的特点是它支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。
并且MongoDB最近越来越火。作为一款基于文档的非关系型数据库,在越来越多的场景可以使用。通过学习归纳MongoDB官方文档(https://docs.mongodb.com/manual/),总结MongoDB有以下特点:
-
容易使用: MongoDB 将数据存储在灵活的,类似于JSON的文档中, 文档模型映射到应用程序代码中的对象,从而使数据易于使用。
-
高性能: MongoDB提供高性能的数据持久性。特别是,对嵌入式数据模型的支持减少了数据库系统上的I / O活动。
索引支持更快的查询,并且可以包含来自嵌入式文档和数组的键。
-
丰富的查询语言: MongoDB支持丰富的查询语言以支持读写操作(CRUD)以及:资料汇总文本搜索和地理空间查询。
-
高可用性: MongoDB的复制工具(称为副本集)提供:自动故障转移、数据冗余。
-
水平可伸缩性: MongoDB提供水平可伸缩性作为其核心功能的一部分:分片在一组计算机集群分布数据。
从3.4开始,MongoDB支持基于shard键创建数据区域。在平衡集群中,MongoDB仅将区域覆盖的读写定向到区域内的那些分片。
-
支持多种存储引擎 MongoDB支持多个存储引擎:
WiredTiger存储引擎(包括对静态加密的支持 )
内存中存储引擎。
总结的来说,一个NoSQL该有的高性能MongoDB一应俱全,并且是一个使用很方便、很擅长储存的非关系型文档数据库。但MongoDB并非100%的完美,它也有一定的缺陷比如不支持事务、占用内存比较大、删除记录不释放空间、没有成熟的维护工具等。
配置方式:
1.配置系统源
vim /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
2.安装
yum install -y mongodb-org #安装mongodb数据库
systemctl start mongod.service #启动mongodb数据库
# systemctl start mongod 启动
# systemctl stop mongod 停止
# systemctl restart mongod 重启
3.配置用户
命令行直接输入 mongo,进入mongoDB ,然后执行以下命令即可
use admin #用户创建
db.createUser({ user:"root", pwd:"123456", roles:["root"] })
use test
db.createUser({ user:"admin", pwd:"123456", roles:["dbOwner"] })
# db.createUser创建一个数据库新用户用db.createUser()方法,如果用户存在则返回一个用户重复错误。
基本语法说明:
user:用户名
pwd:密码
roles:
role:角色名
db:作用对象
role:root, readWrite,read
4.修改配置文件/etc/mongod.conf(这样配置就可以通过工具远程连接数据库了,建议针对IP做限制)
# mongod.conf
# for documentation of all options, see:
# http://docs.mongodb.org/manual/reference/configuration-options/
# where to write logging data.
systemLog:
destination: file
logAppend: true
path: /var/log/mongodb/mongod.log
# Where and how to store data.
storage:
dbPath: /data/mongo
journal:
enabled: true
# engine:
# wiredTiger:
# how the process runs
processManagement:
fork: true # fork and run in background
pidFilePath: /var/run/mongodb/mongod.pid # location of pidfile
timeZoneInfo: /usr/share/zoneinfo
# network interfaces
net:
port: 27017
bindIp: 0.0.0.0 # Enter 0.0.0.0,:: to bind to all IPv4 and IPv6 addresses or, alternatively, use the net.bindIpAll setting.
security:
authorization: "enabled"
#operationProfiling:
#replication:
#sharding:
## Enterprise-Only Options
#auditLog:
#snmp: