开源的文档型数据库--MongoDB(安装)

news2024/11/27 22:24:08

在这里插入图片描述

1、简介

MongoDB 是一个开源的、文档数据库管理系统。它提供了高性能、高可扩展性和高可用性。
MongoDB 使用了一种称为 BSON 的二进制形式的 JSON 来存储数据。这使得 MongoDB 可以轻松地存储各种数据类型,包括大型对象和二进制文件。
MongoDB 的一个重要特性是它的分布式架构。它可以在多台服务器上分布数据,并可以在这些服务器之间进行自动故障转移。这使得 MongoDB 非常适合大规模的数据集,并可以提供高可用性。
MongoDB 还提供了一个强大的查询功能,可以方便地查询和处理数据。它还支持索引和聚合操作,使得对数据进行统计和分析变得更加容易。
而且MongoDB 是最像关系型数据库(MySQL)的非关系型数据库。
总的来说,MongoDB 是一个功能强大且易于使用的数据库管理系统,适用于各种应用场景, 并且可以与其他软件和技术结合使用,比如搜索引擎、消息队列、云计算平台等。

官网:https://www.mongodb.com/

中文网:https://www.mongodb.org.cn/ (可能会有点旧)

2、特点

MongoDB 最大的特点是他支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。它是一个面向集合的,模式自由的文档型数据库。具体特点总结如下:

  1. 面向集合存储,易于存储对象类型的数据
  2. 模式自由
  3. 支持动态查询
  4. 支持完全索引,包含内部对象
  5. 支持复制和故障恢复
  6. 使用高效的二进制数据存储,包括大型对象(如视频等)
  7. 自动处理碎片,以支持云计算层次的扩展性
  8. 支持 Python,PHP,Ruby,Java,C,C#,Javascript,Perl及C++语言的驱动程 序, 社区中也提供了对Erlang及.NET 等平台的驱动程序
  9. 文件存储格式为 BSON(一种 JSON 的扩展)

3、安装

安装包下载地址:https://www.mongodb.com/try/download/community

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PCUEcU5z-1673343097019)(https://xingqiu-tuchuang-1256524210.cos.ap-shanghai.myqcloud.com/3790/1672815396737-64843a60-9c10-40be-9eb9-3e2892b9f8d9.png)]

3.1 Windows安装(msi)

下载安装包
image.png
双击进入安装程序。
image.png
Next,下一步。
image.png
image.png
image.png
image.png
image.png
在这个页面中,你可以选择:
选择**Install MongoD as a service **,可以将MongoDB 安装为服务(安装为服务可以使用Windows服务来进行自启动,更加方便,只有选择安装为服务才可以进行下面的配置)

  • **Run service as Network Service user **,即以网络服务用户身份运行服务(默认)
    这是 Windows 内置的 Windows 用户帐户
  • Run Service as a local or domain user, 即以本地或域用户身份运行服务
    对于现有的本地用户帐户,为帐户域指定一个句点(即 .,上图即为该情况)并为用户指定帐户名称和帐户密码。对于现有域用户,指定该用户的帐户域、帐户名称和帐户密码。
  • **Service Name **即服务名称。指定服务名称。默认名称是 MongoDB。如果您已有具有指定名称的服务,则必须选择其他名称。
  • Data Directory 即数据目录。指定数据目录,对应–dbpath。如果目录不存在,安装程序将创建目录并将目录访问权限设置给服务用户。
  • Log Directory 即日志目录。指定Log目录,对应–logpath。如果目录不存在,安装程序将创建目录并将目录访问权限设置给服务用户。

选择完毕后点击next。
image.png
点击install就可以开始安装了。
image.png
image.png
安装完成之后。
image.png
在data目录新建db目录(如果你有就不用了)。
image.png
在log目录下新建mongodb.log文件(如果你有就不用了)。
image.png
在安装目录新建文件mongo.config

dbpath=F:\software\mongoDB\data\db #你的数据库路径

logpath=F:\software\mongoDB\log\mongodb.log #日志输出文件路径

logappend=true #错误日志采用追加模式

journal=true #启用日志文件,默认启用

quiet=true #过滤掉无用的日志信息,若需要调试使用请设置为false

port=27017 #端口号 默认为27017

3.1.1 命令行下运行 MongoDB 服务器

为了从命令提示符下运行 MongoDB 服务器,你必须从 MongoDB 目录的 bin 目录中执行 mongod.exe 文件。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5oJ5PVuf-1673343097023)(https://xingqiu-tuchuang-1256524210.cos.ap-shanghai.myqcloud.com/3790/1672820730877-96bac27f-9ef8-46a7-a468-bff4c54a0776.png)]

输入命令运行MongoDB服务:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ptm7E7Vp-1673343097023)(https://xingqiu-tuchuang-1256524210.cos.ap-shanghai.myqcloud.com/3790/1672820814367-a21e8058-4007-49b2-9b83-7f3405be2577.png)]

mongod --dbpath F:\software\mongoDB\data\db #换成你的地址

image.png
浏览器打开
http://localhost:27017/
image.png
说明启动成功。

3.1.2 安装 MongoDB服务

通过执行** mongod.exe**,使用** --install** 选项来安装服务,使用 **–config **选项来指定之前创建的配置文件。
image.png

mongod --config "F:\software\mongoDB\mongo.config" --install --serviceName "MongoDB"

打开任务管理器。
image.png

3.1.3 配置环境变量

将MongoDB的bin目录的路径加入环境变量
image.png

image.png
image.png

image.png
image.png
image.png
点击确认即可。
image.png

3.2 Linux 安装 (CentOS)

安装包下载地址:https://www.mongodb.com/try/download/community
MongoDB提供了linux平台上32位和64位的安装包,你可以在官网下载安装包。
image.png

3.2.1 安装

安装前我们需要安装 CentOs 平台依赖包。

sudo yum install libcurl openssl

这里我们选择 tgz 下载,下载完安装包,并解压 tgz(以下演示的是 64 位 Linux上的安装) ,wget如果下载得很慢的话,就选择直接下载然后上传即可。image.png

wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-5.0.14.tgz # 下载

tar -zxvf 包名  # 解压

mv 解压后的包名  /usr/local/mongodb  # 将解压包拷贝到指定目录

为 MongoDB 创建数据目录。

 sudo mkdir -p /usr/local/mongodb/data/db

为 MongoDB 创建日志目录。

 sudo mkdir -p /usr/local/mongodb/data/log

设置可读写权限:

sudo chmod 666 db/
sudo chmod 666 log/

在 mongoDB 目录下新建配置文件 mongodb.conf, 使用以下命令创建。

sudo vim /usr/local/mongodb/mongodb.conf

将以下内容添加到文件中:

dbpath=/usr/local/mongodb/data/db #你的数据库路径
# 日志文件存放目录
logpath=/usr/local/mongodb/data/log/mongodb.log #日志输出文件路径

# 日志追加方式
logappend=true
# 端口
port=27017
# 是否认证
auth=true
# 以守护进程方式在后台运行
fork=true
# 远程连接要指定ip,否则无法连接;0.0.0.0代表不限制ip访问
bind_ip=0.0.0.0

image.png

3.2.2 配置环境变量

sudo vi /etc/profile

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qJb2U5bb-1673343097027)(https://xingqiu-tuchuang-1256524210.cos.ap-shanghai.myqcloud.com/3790/1673328869239-b64ba156-1866-4686-9b08-f8d041db81d4.png)]

source /etc/profile

3.2.3 创建mongoDB服务

使用以下命令创建启动配置文件

vi /lib/systemd/system/mongodb.service

复制粘贴以下内容保存,如果有些地方跟你的不同,记得改一下。

[Unit]
    Description=mongodb
    After=network.target remote-fs.target nss-lookup.target
[Service]
    Type=forking
    ExecStart=/usr/local/mongodb/bin/mongod -f /usr/local/mongodb/mongodb.conf
    ExecReload=/bin/kill -s HUP $MAINPID
    ExecStop=/usr/local/mongodb/bin/mongod -f /usr/local/mongodb/mongodb.conf --shutdown
    PrivateTmp=true
[Install]
    WantedBy=multi-user.target

image.png
重新加载文件:

systemctl daemon-reload

3.2.4 命令

启动:

systemctl start mongodb.service

重启:

systemctl restart mongodb.service

停止:

systemctl stop mongodb.service

开机自启:

systemctl enable mongodb.service

查询服务状态:

systemctl status mongodb.service

4、Docker (个人推荐)

访问 MongoDB 镜像库地址: 。
image.png
image.png
秉着不选最新的原则,我们就选后面一个版本就行了。

docker pull mongo:4.2.23

image.png
安装完成后,我们可以使用以下命令来运行 mongo 容器:

docker run --name mongo -p 27017:27017 -d mongo:4.2.23 --auth

参数说明:

  • –**name mongo **:给容器起一个名字。
  • -p 27017:27017 :映射容器服务的 27017 端口到宿主机的 27017 端口。外部可以直接通过 宿主机 ip:27017 访问到 mongo 的服务。
  • -d : 后台运行。
  • –auth:需要密码才能访问容器服务。

温馨提示:端口号可以换成其他的,毕竟27017是默认端口容器被攻击.
image.png
使用以下命令添加用户和设置密码,并且尝试连接。

docker exec -it mongo mongo admin

image.png
创建一个名为 admin,密码为 123456 的用户。

db.createUser({ user:'admin',pwd:'123456',roles:[ { role:'userAdminAnyDatabase', db: 'admin'},"readWriteAnyDatabase"]});

image.png
使用上面创建的用户信息进行连接。

db.auth('admin', '123456')

image.png

5、使用数据库可视化工具连接

image.png

image.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/153313.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

多线程1.

多线程1 1.如果想对地址空间的堆区做更细腻化的空间管理,怎么办? 搞一个vim_area_struct,他是一个双向链表。每一个节点是一块堆区空间,用链表串起来。 2.如何管理物理内存? 设定一个数据结构,如&#x…

电子会议桌牌

产品特色: 低功耗,常规使用3-5年电池寿命支持空中唤醒,刷新快速,几秒钟内看到结果点阵电子纸屏幕,视角接近180基于Web的应用界面,支持跨平台操作安装简单,快速布置电池供电不需要布线双面显示&…

神经网络模型的参数量和FlOPS

一、FLOPS、FLOPs和GFLOPs的概念 FLOPS:注意S是大写,是 “每秒所执行的浮点运算次数”(floating-point operations per second)的缩写。它常被用来估算电脑的执行效能,尤其是在使用到大量浮点运算的科学计算领域中。正…

重装系统把所有盘格式化教程

在使用电脑的过程中,可能会遇到系统重装的问题,但是有些朋友就觉得之前的分区不太合理,就打算全盘格式化重装系统,那小白一键重装系统怎么把所有盘格式化呢?这需要借助U盘或光盘来引导了。下面就来看看操作教程吧。 工具/原料&a…

2.17 STM32 SysTick—系统定时器

文章目录1、简介2、寄存器2.1 SysTick控制和状态寄存器(STK_CTRL)2.2 重载值寄存器(STK_LOAD)2.3 SysTick当前值寄存器 (STK_VAL)2.4 校准寄存器(STK_CALIB)3、SysTick 定时实验3.1 在标准库中3.2 在HAL库中的初始化4、SysTick 定…

driftingblues7靶机(eyes of network漏洞)

环境准备 靶机链接:百度网盘 请输入提取码 提取码:49by 虚拟机网络链接模式:桥接模式 攻击机系统:kali linux 2021.1 信息收集 1.arp-scan -l 2.探测靶机开放端口和服务情况 nmap -p- -A -T4 192.168.1.108 漏洞利用 1.访…

为什么开发者这么看重SQL?看完这些应用场景你就明白了

看到一个有趣的比喻,用来说明SQL与Excel的差别是什么。 如果把SQL比作火车,把Excel更比作卡车。 卡车灵活自由,高速或乡村小道想去哪就去哪,但即便每天不停歇卡车的运载量也不大,而且容易出交通事故。 火车运载量大…

P2P中的NAT穿越(打洞)方案详解

1、内容概述 P2P即点对点通信,或称为对等联网,与传统的服务器客户端模式(如下图“P2P结构模型”所示)有着明显的区别,在即时通讯方案中应用广泛(比如IM应用中的实时音视频通信、实时文件传输甚至文字聊天等…

【Python基础】篇四之while、for循环及其嵌套、continue、break

while循环基本格式:while 条件:条件满足时做的事1条件满足时做的事2条件满足时做的事省略注:只要条件满足就会一直执行while的条件需得到布尔类型,True表示循环继续,False表示循环结束需要设置循环终止条件&#xff0c…

map 源码思考

go 语言中 map 比较的说,和 slice 有什么区别?如果 map 是从 int 到 int 类型的话,差别还真不大。map 的 key 退化为 slice 的下标,而 value 退化为 slice 的值。 但这样也存在很大的弊端:空间浪费严重。假设 map 中只…

虹科分享 | 网络流量监控 | 构建大型捕获文件(Ⅱ)——Pcap分析仪:Allegro网络万用表的Pcap过滤器

上一期我们讨论的是如何使用Wireshark工具进行结构化搜索的技术,这一期我们将为大家进行介绍,我们该如何使用 Allegro 网络万用表来加快 pcap 分析器的工作。 前期回顾:构建大型捕获文件(Ⅰ)——Wireshark过滤器和其他…

VIVO应用商店APP侵权投诉流程

目录一、官方指引二、侵权投诉提交流程一、官方指引 https://dev.vivo.com.cn/documentCenter/doc/34 二、侵权投诉提交流程 登录 vivo 开放平台:https://dev.vivo.com.cn/,点击右下角“工单系统”: 业务类型选 “投诉举报类”&#xff0…

Redis-设置过期时间及淘汰策略

文章目录1. TTL2. 设置过期时间3. 删除过期key4. 淘汰策略Redis-设置过期时间及淘汰策略项目组使用的 Redis 服务器发出了内存不足报警,查了一些资料,记录下。 1. TTL 查看 Redis key 是否过期是 TTL 命令,或者登陆 Redis 客户端&#xff0…

重点算法排序之堆排序(下篇)

文章目录 一、堆排序的概念 1、1 堆的基本概念 1、2 堆的特性 二、堆排序的思路及代码实现 2、1 建堆 2、2 向下调整算法详解 2、3 建完堆后进行堆排序 2、3、1 排升序建大堆 2、3、2 建大堆后进行堆排序 三、堆排序的例题 2、1 例题1:堆排序 2、2 例题2&#x…

HTTP.sys远程代码执行漏洞修复

1.漏洞描述 Http.sys是Microsoft Windows处理HTTP请求的内核驱动程序。HTTP.sys会错误解析某些特殊构造的HTTP请求,导致远程代码执行漏洞。成功利用此漏洞后,攻击者可在System帐户上下文中执行任意代码。由于此漏洞存在于内核驱动程序中,攻击…

VMware下的虚拟机网络设置(NAT、桥接、仅主机)

在入门使用VMware搭建Linux的环境时,对于网络的设置时不可避免的,因为linux搭建完成后,或多或少的回去访问外部资源或者被外部资源访问。这时候设置的虚拟机网络连接方式就显得尤为重要,所以在这里整理了一下虚拟机的三种连接方式…

说说压缩文件“打开密码”的两种模式

我们知道,如果对压缩文件有保密需求,可以给压缩文件设置“打开密码”,通过密码才能查看压缩文件里的内容。那通过WinRAR设置的“打开密码”有两种模式,你知道吗?下面来具体说说。 模式一:可以看到压缩包的…

springboot集成mybatis

springboot集成mybatis 文章目录springboot集成mybatis前言一、初始化项目1.创建项目2.引入依赖3.创建实体类4.修改配置文件二、使用Mybatis1.纯注解方式2.使用xml文件方式三、使用pagehelper分页前言 MyBatis 是一个开源、轻量级的数据持久化框架,是 JDBC 和 Hibe…

赤池信息量准则(AIC)和贝叶斯信息准则(BIC)

一 AIC 赤池信息量准则(Akaike information criterion,AIC)是评估统计模型的复杂度和衡量统计模型“拟合”资料之优良性(Goodness of fit)的一种标准,是由日本统计学家赤池弘次创立和发展的。赤池信息量准则建立在信息熵的概念基…

LeetCode题目笔记——面试题 02.07. 链表相交

文章目录题目描述题目难度——简单方法一:数数,然后遍历代码/C方法二:双指针代码/C代码/Python总结题目描述 给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表没有交点&#xff0c…