玩转 MongoDB - 理论详解+安装教程

MongoDB - 理论详解+安装教程

前言

  • MongoDB 是一个基于分布式文件存储的数据库,由 C++ 语言编写,旨在为 Web 应用提供可扩展高性能数据存储的解决方案
  • MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的

1.什么是 NoSQL?

  • 在现代的计算系统上每天网络上都会产生庞大的数据量,而这些数据有很大一部分是由关系数据库管理系统来处理,它是结构化数据存储在网络和商务应用的主导技术
  • NoSQL(NoSQL = Not Only SQL ),意即“不仅仅是 SQL”,即非关系型数据库,用于超大规模数据的存储,这些类型的数据存储不需要固定的模式,无需多余操作就可以横向扩展
  • 我认为,随着互联网的日益发展,用户需求只会越来越大,要求只会越来越高,也就会出现越来越多主流关系型数据库所不能满足的情景,这时就需要 NoSQL 了
mark

2.什么是 MongoDB?

  • MongoDB 是由 C++ 语言编写,是一个基于分布式文件存储的开源数据库系统,在高负载的情况下,可以添加更多的节点,以保证服务器性能

  • MongoDB 将数据存储为一个文档,数据结构由键值(key=>value)对组成,其文档类似于 JSON 对象,字段值可以包含其他文档,数组及文档数组

    mark

3.主要特点

  1. MongoDB 是一个面向文档存储的数据库,安装与操作起来比较简单和容易

  2. 在 MongoDB 记录中可以设置任何属性的索引,以实现更快的搜索与排序等

  3. 可以通过本地或者网络创建数据镜像,这使得 MongoDB 有更强的扩展性

  4. 如果负载增加,需要更多的存储空间和更强的处理能力,它可以分布在计算机网络中的其他节点上,这就是所谓的分片

  5. Mongo 支持丰富的查询表达式,查询指令使用 JSON 形式的标记,可轻易查询文档中内嵌的对象及数组

4.在 Linux 上安装 MongoDB

官方文档: https://docs.mongodb.com/manual/tutorial/install-mongodb-on-red-hat/

①配置YUM仓库

----安装MongoDB社区版----

[root@localhost ~]# vim /etc/yum.repos.d/mongodb-org-4.4.repo
'//以下为4.4版本示例'
[mongodb-org-4.4]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.4/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-4.4.asc

'//清除yum缓存并重新进行更新缓存'
[root@localhost ~]# yum clean all && yum makecache fast

②安装 MongoDB 软件包

'//配置好其YUM仓库后就可以直接使用yum命令下载最新的稳定版本啦'
'//耗费时间可能较长,毕竟是国外的东西,网速一定要给力或挂VPN'
[root@localhost ~]# yum install -y mongodb-org

'//若要安装特定版本的MongoDB,需分别指定每个组件包,然后将版本号附加至包名中'
'//例:'
yum install -y mongodb-org-4.4 mongodb-org-server-4.4 mongodb-org-shell-4.4 mongodb-org-mongos-4.4 mongodb-org-tools-4.4

③运行 MongoDB 社区版

'目录路径:默认情况下,MongoDB使用mongod用户账户运行,并使用以下默认目录'
/var/lib/mongo (数据目录)
/var/log/mongodb (日志目录)
'我们是通过YUM安装的,所以会默认创建这些目录,并且其所有者与组都默认设置为mongod'
[root@localhost ~]# ls -l /var/lib | grep mongod
drwxr-xr-x. 4 mongod         mongod         4096 4月  11 22:37 mongo
[root@localhost ~]# ls -l /var/log | grep mongod
drwxr-xr-x. 2 mongod mongod       24 4月  11 19:02 mongodb


'//启动MongoDB'
[root@localhost lib]# systemctl start mongod
'//启动过程中可能会报错,建议使用systemctl daemon-reload命令使配置文件生效,再开启服务就好了'

'//验证MongoDB是否成功启动'
[root@localhost lib]# systemctl status mongod
'//开启自启动'
[root@localhost lib]# systemctl enable mongod
'//mongd默认使用端口27017连接至本地主机上运行shell'
[root@localhost lib]# netstat -natp|grep 27017
tcp        0      0 127.0.0.1:27017         0.0.0.0:*               LISTEN      40088/mongod        

'//如何开始使用MongoDB'
[root@localhost ~]# mongo		'//就是这么的简单粗暴,直接输出mongo就可以进入了'
MongoDB shell version v4.4.5
connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("610047be-56d6-456a-978f-c7f096e58d5f") }
MongoDB server version: 4.4.5
---
The server generated these startup warnings when booting: 
        2021-04-11T19:08:57.133+08:00: Access control is not enabled for the database. Read and write access to data and configuration is unrestricted
        2021-04-11T19:08:57.133+08:00: /sys/kernel/mm/transparent_hugepage/enabled is 'always'. We suggest setting it to 'never'
        2021-04-11T19:08:57.133+08:00: /sys/kernel/mm/transparent_hugepage/defrag is 'always'. We suggest setting it to 'never'
---
---
        Enable MongoDB's free cloud-based monitoring service, which will then receive and display
        metrics about your deployment (disk utilization, CPU, operation statistics, etc).

        The monitoring data will be available on a MongoDB website with a unique URL accessible to you
        and anyone you share the URL with. MongoDB may use this information to make product
        improvements and to suggest MongoDB products and deployment options to you.

        To enable free monitoring, run the following command: db.enableFreeMonitoring()
        To permanently disable this reminder, run the following command: db.disableFreeMonitoring()
---			'//其实一个JavaScript Shell,可以运行一些简单的算术玩玩'
> 2+2
4
> 3+6
9


'后续可查看 /var/log/mongodb/mongod.log 日志文件来查看重要消息和排错'
tail -10f /var/log/mongodb/mongod.log
'//也可以以这种方法检测是否数据库是否启动成功'

④卸载 MongoDB 社区版

'//要从系统中完全删除MongoDB,必须删除MongoDB应用程序本身,配置文件以及包含数据和日志的所有目录'

'//停止该过程'
service mongod stop
'//删除以前安装的所有MongoDB软件包'
yum erase $(rpm -qa | grep mongodb-org)
'//删除MongoDB数据库和日志文件'
rm -r /var/log/mongodb
rm -r /var/lib/mongo

⑤其他信息

MongoDB 社区版包含以下官方支持的软件包:

名称描述
mongodb-org会自动安装下面列出的组件包
mongodb-org-server包含mongod守护程序,关联的初始化脚本和配置文件(/etcd/mongod.conf)
mongodb-org-mongos包含mongos守护程序
mongodb-org-shell包含mongo外壳
mongodb-org-tools会自动安装以下列出的组件包
组件包名称描述
mongodb-database-tools包含以下MongoDB数据库工具:
\mongodump
\mongorestore
\bsondump
\mongoimport
\mongoexport
\mongostat
\mongotop
\mongofiles
mongodb-org-database-tools-extra包含install_compass脚本

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Xucf1

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值