MongoDB 简介

什么是 MongoDB

MongoDB 是一个基于分布式文件存储的数据库。由 C++语言编写。在为 WEB 应用提供可扩展的高性能数据存储解决方案。

MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。它支持的数据结构非常松散,是类似 json 的 bson 格式,因此可以存储比较复杂的数据类型。Mongo 最大的特点是它支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。

什么是 NoSQL

NoSQL(NoSQL = Not Only SQL ),意即“不仅仅是 SQL”,是一项全新的数据库革命性运动,早期就有人提出,发展至 2009 年趋势越发高涨。NoSQL 的拥护者们提倡运用非关系型的数据存储,相对于铺天盖地的关系型数据库运用,这一概念无疑是一种全新的思维的注入。

MongoDB 与关系型数据库对比

与关系型数据库术语对比

存储数据对比

RDBMS MongoDB 对应的术语

MongoDB 的数据类型

MongoDB 的下载与安装

下载 MongoDB

下载地址:https://www.mongodb.com/download-center/community

Linux 安装

将下载的 tgz 包上传到 Linux 环境中(解压)

移动 MongoDB

我们将解压完的 MongoDB 目录移动到/usr/local 目录中并改名为 mongo。

创建数据库目录

MongoDB 的数据存储在 data 目录的 db 目录下,但是这个目录在安装过程不会自动创建,需要手动创建 data 目录,并在 data 目录中创建 db 目录。data 目录可以创建在任何位置。

至此 Linux 平台中的 MongoDB 就已经安装完毕。

MongoDB 的启动与关闭

启动 MongoDB

MongoDB 的启动方式分为两种

1)前置启动

2)后置启动

无论哪种启动方式都需要执行 bin 目录中的 mongod 命令。MongoDB 在启动时默认的查找数据库的路径为/data/db。如果我们数据库路径有变化,需要在该命令中通过--dbpath 参数来指定 db 目录的路径(该路径可以是绝对路径,也可是相对路径)。

前置启动

MongoDB 的默认启动方式为前置启动。所谓前置启动就是 MongoDB 启动进程后会占用当前终端窗口。

进入到 MongoDB 的 bin 目录。

执行 bin 目录中的 mongod 命令。

由于我们的 db 目录放在 mongodb 的根下,所以在执行该命令时需要通过 --dbpath 参数指定 db 路径。

启动后会在终端中输出一些启动信息。此时终端窗口已被启动进程所占用。我们通过启动信息可以看到 MongoDB 默认的监听端口为 27017

按 Ctrl+C 可结束启动进程关闭 MongoDB

后置启动

所谓后置启动就是以守护进程的方式启动 MongoDB。我们需要在执行 mongod 命令中添加 --fork 参数。需要注意的是,--fork 参数需要配合着--logpath 或者是--syslog 参数使用。

--logpath 与--syslog 参数是指定 MongoDB 的日志文件。MongoDB 的日志文件可以在系统中的任意位置,本视频中我们在 mongodb 目录下创建 log 目录,在该目录中创建一个名为mongodb.log 的日志文件。

后置启动 MongoDB

[root@bogon bin]# ./mongod --dbpath /usr/local/mongo/data/db/ --logpath /usr/local/mongo/log/mongodb.log --fork

常见的启动参数

通过配置文件加载启动参数

如果觉得在启动 MongoDB 时给定的参数项太多,那么我们也可以通过配置文件来配置启动参数,配置文件可以在任意目录中,配置文件的扩展名应为.conf,配置文件中使用key=value 结构。在执行 MongoDB 时通过--config 参数来指定需要加载的配置文件。

我们在 mongodb 目录下创建一个 etc 目录,在该目录中创建一个名为 mongodb.conf 的配置文件。

通过加载配置文件启动 MongoDB

[root@bogon bin]# ./mongod --config /usr/local/mongo/etc/mongodb.conf

配置环境变量

为了能够在任何目录中执行 bin 目录中的命令,我们可以将 bin 目录添加到环境变量中。修 改 /etc/profile 文 件 , 添 加

export PATH=/usr/local/mongodb/bin:$PATH 

/usr/local/monogdb/bin 为 MongoDB 的 bin 目录的绝对路径。同学们可根据自己的情况来指

重新加载/etc/profile 文件

测试结果

关闭 MongoDB

1使用 Ctrl+C 关闭

如果我们的启动方式是前置启动,那么直接使用快捷键 Ctrl+C 就可以关闭 MongoDB。这种关闭方式会等待当前进行中的的操作完成,所以依然是安全的关闭方式。

2使用 kill 命令关闭

我们可以通过 Linux 的 kill 命令结束 MongoDB 进程,然后删除 data/db 目录中的mongod.lock 文件,否则下次无法启动。但是此方法不建议使用,因为会造成数据损坏现象。

3使用 MongoDB 的函数关闭

在 MongoDB 中提供了两个关闭数据库的函数:

db.shutdownServer()

db.runCommand(“shutdown”) 

如上两个方法都需要在 admin 库中执行,并且都是安全的关闭方式。

4使用 mongod 命令关闭 MongoDB

mongod --shutdown --dbpath<数据库路径>

mongod 命令的 shutdown 选项能安全的关闭 MongoDB 服务

MongoDB 的用户与权限管理

Mongodb 作为时下最为热门的数据库,那么其安全验证也是必不可少的,否则一个没有验证的数据库暴露出去,任何人可随意操作,这将是非常危险的。我们可以通过创建用户 的方式来降低风险。

Mongodb 用户权限列表

MongoDB第一天(MongoDB的简介和安装)的更多相关文章

  1. MongoDB入门学习笔记之简介与安装配置

    一.MongoDB简介 1.文档数据库 MongoDB是一款开源的文档型非关系数据库,具有高性能.高可靠性和自动扩展等特点.MongoDB中的每一条记录是一个文档,其数据存储结构为键/值对,类似JSO ...

  2. MongoDB系列(一):简介及安装

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

  3. MongoDB学习笔记-01 简介、安装

    MongoDB简介 MongoDB是一种强大.灵活.可拓展的存储方式.是一个面向文档(相当于"行"的概念)的数据库. 可拓展:通过添加服务器而增加存储量. Windows下安装 版 ...

  4. MongoDB数据库简介及安装

    一.MongoDB数据库简介 简介 MongoDB是一个高性能,开源,无模式的,基于分布式文件存储的文档型数据库,由C++语言编写,其名称来源取自"humongous",是一种开源 ...

  5. MongoDB(二):MongoDB简介及安装

    一.MongoDB 1.简介 MongoDB是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统.旨在为WEB应用提供可扩展的高性能数据存储解决方案.在高负载的情况下,添加更多的节点(分布式 ...

  6. MongoDB简介,安装,增删改查

    MongoDB到底是什么鬼? 最近有太多的同学向我提起MongoDB,想要学习MongoDB,还不知道MongoDB到底是什么鬼,或者说,知道是数据库,知道是文件型数据库,但是不知道怎么来用 那么好, ...

  7. 【MongoDB系列】简介、安装、基本操作命令

    文章内容概述: 1.MongoDB介绍 2.MongoDB安装(windows及Linux) 3.MongoDB基本操作命令 MongoDB介绍: MongoDB 是一个基于分布式文件存储的数据库.由 ...

  8. MongoDB学习【一】—MongoDB简介和安装

    一.MongoDB简介 1.MongoDB是什么 MongoDB是一款强大.灵活.且易于扩展的通用型数据库,MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统. 在高负载的 ...

  9. 第一节 MongoDB介绍及下载与安装

    引言 MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的.他支持的数据结构非常松散,是类似json的bjson格式,因此可以存储比较复杂的数据类 ...

随机推荐

  1. T-SQL, Part III: Check table's existance

    There are several approaches to achieve so. Just list out all approaches I have tried: Approach 1: s ...

  2. 多线程-等待(Wait)和通知(notify)

    1.为了支撑多线程之间的协作,JDK提供了两个非常重要的线程接口:等待wait()方法和通知notify()方法. 这两个方法并不是在Thread类中的,而是输出在Object类.这意味着任何对象都可 ...

  3. [LC]26题 Remove Duplicates from Sorted Array (删除排序数组中的重复项)(双指针法)(原地实现)

    ①中文题目 给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度. 不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成 ...

  4. 资深架构师Sum的故事:(Mysql)InnoDB下,存储过程中事务的处理

    | 故事背景 话说有一回,X市X公司的产品经理Douni兴致冲冲的跑来和Sum(Sum,X市X公司资历8年程序猿,技能:深思.熟虑.心细.深究.技术过敏.口头禅:嗯,容我想想.坚信:只要赚钱的业务,我 ...

  5. 自学python的高效学习方法【python秘籍】

    随着互联网的发展,数据科学概念的普及,Python火得一塌糊涂,为此很多小伙伴想学这门语言,苦于没有正确的学习方法,大部分都放弃了,所以我想总结下经验来帮助大家高效学完python技术!第一.首先学习 ...

  6. package.json文件内容介绍

    概述 每个项目的根目录下面,一般都有一个package.json文件,定义了这个项目所需要的各种模块,以及项目的配置信息(比如名称.版本.许可证等元数据).npm install命令根据这个配置文件, ...

  7. php Swoole实现毫秒级定时任务

    项目开发中,如果有定时任务的业务要求,我们会使用linux的crontab来解决,但是它的最小粒度是分钟级别,如果要求粒度是秒级别的,甚至毫秒级别的,crontab就无法满足,值得庆幸的是swoole ...

  8. python接口自动化--Excel

    1.操作步骤: (1)安装python官方Excel库-->xlrd (2)获取Excel文件位置并读取 (3)读取sheet (4)读取指定rows和cols内容 2.示例代码 # -*- c ...

  9. opencv 4 图像处理 (1 线性滤波,非线性滤波)

    1 线性滤波:方框滤波.均值滤波.高斯滤波 1.1方框滤波(box Filter) 1.2均值滤波(blur函数) 缺陷: 1.3高斯滤波(GaussianBlur函数) 1.4线性滤波核心API函数 ...

  10. Nginx服务器安装及配置解释

    nginx是高性能的轻量级web服务器. 特性: 1.http代理 2.反向代理 3.负载均衡 4.缓存机制 一,安装及启动(centos7,nginx 1.14.0) 1.下载 wget http: ...