【MongoDB系列】1.MongoDB 6.x 在 Windows 和 Linux 下的安装教程(详细)

news2024/9/25 1:19:35

本文主要介绍 MongoDB 最新版本 6.x 在Windows 和 Linux 操作系统下的安装方式,和过去 4.x 、5.x 有些许不同之处,供大家参考。

Windows 安装

进入官网下载 Mongodb 安装包,点此跳转,网站会自动检测当前操作系统提供最新的版本,和适合此平台的安装包:

image-20221108200604652

除了 .msi 格式的安装包,还可以选择 .zip 压缩包:

image-20221108200656068

msi 安装

双击打开下载好的安装包,一直点击下一步:

2022-11-08_200945

勾选同意:

image-20221108204242546

选择一个完整安装:

image-20221108204326047

保持默认即可,这一步用来设置 windows 系统中 MongoDB 服务的名字,以及数据和日志的存放目录:

image-20221108204443526

去掉默认选中项,它会安装一个用于操作 MongoDB 数据库的客户端工具,推荐安装另一款 Robo 3T 或者其他你习惯用的:

image-20221108204558874

然后点下一步进行安装即可,安装过程大概三五分钟。

安装成功:

image-20221108204758533

查看 MongoDB 服务的状态

Ctrl + Shfit + Esc,打开任务管理器,切换到服务选项卡,下拉找到 MongoDB 服务。

在这里可以观察到 MongoDB 的状态,默认是自动启动,即开机自启。

2022-11-08_203851

或者打开浏览器访问 https://localhost:27017

2022-11-08_221733

MongoDB 目录

来到 MongoDB 的安装目录,默认是 C:/Program Files/MongoDB/Server/6.0,或者你选择的其他目录。

其中,bin 是 MongoDB 提供的可执行程序的目录,data 是数据存储的目录,log 是日志存储的目录。后两者在过去都需要开发者手动创建。现在安装程序会自动创建。

2022-11-08_203728

看下 bin 目录下的可执行程序, mongod.exe 用来启动 MongoDB 服务,mongos.exe 用来管理分片集群。

2022-11-08_203803

在 MongDB 6 以前,这个目录下会有很多可执行程序,比如最常用的 mongo.exe,它用来连接到 MongoDB 服务,是一个 shell 环境的客户端工具。但是现在需要单独进行安装。

安装 MongoDB Shell

点击跳转,下载压缩包:

image-20221108213028204

一直点击下一步安装即可,安装目录可使用默认,或者自定义:

2022-11-08_213239

2022-11-08_213815

访问 MongoDB 服务

在 bin 目录下,打开命令行工具,

安装完成后,进入安装目录,打开命令行工具,执行 mongosh.exe ,默认会连接 mongodb://localhost:27017 的 MongoDB 服务:

image-20221108220829813

这是一个 shell 环境,支持 JavaScript 语法,还有一些扩展的操作数据库语法,比如查看所有的数据库:

show dbs

2022-11-08_213937

设置环境变量

为了方便在各个路径下使用 MongoDB 提供的命令和 MongoDB Shell,而不用切换到 bin 目录下,可以将 bin 目录添加到环境变量中。

按 Win + S 打开搜索,输入“环境变量”:

image-20221108205823710

image-20221108205905029

双击打开 Path 变量:

image-20221108205953241

将 bin 目录添加进行保存即可:

image-20221108221536878

之后就可以在任意路径下使用 mongoshmongod 等命令了。

Linux 安装

安装 MongoDB

本文以 CentOS 8 为例,其他 Linux 版本可点此参考官方文档进行安装。

可以从官网下载好安装包,上传到服务器或者虚拟机中:

image-20221108234316369

或者直接在服务器中通过下载工具进行下载:

# wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel80-6.0.2.tgz

查看下载好的安装包:

# ls
mongodb-linux-x86_64-rhel80-6.0.2.tgz

解压并将目录重命名为“mongodb”:

# tar -zxf mongodb-linux-x86_64-rhel80-6.0.2.tgz 
# ls
mongodb-linux-x86_64-rhel80-6.0.2  mongodb-linux-x86_64-rhel80-6.0.2.tgz  

# mv mongodb-linux-x86_64-rhel80-6.0.2 mongodb

image-20221108234803120

进入安装包目录:

# cd mongodb
# ll
total 140
drwxr-xr-x 2 root root  4096 Nov  8 22:50 bin
-rw-r--r-- 1 root root 30608 Sep 29 09:07 LICENSE-Community.txt
-rw-r--r-- 1 root root 16726 Sep 29 09:07 MPL-2
-rw-r--r-- 1 root root  1977 Sep 29 09:07 README
-rw-r--r-- 1 root root 77913 Sep 29 09:07 THIRD-PARTY-NOTICES

其中,bin 目录存放数据库提供的命令:

image-20221109094325995

安装 mongodb shell

下载安装包:

# wget https://downloads.mongodb.com/compass/mongosh-1.6.0-linux-x64.tgz

解压:

# tar -zfx mongosh-1.6.0-linux-x64.tgz  

重命名解压后的目录:

# mv mongosh-1.6.0-linux-x64.tgz mongosh

mongosh/bin 目录下提供了 mongosh 命令用于连接到 MongoDB 数据库服务:

image-20221109000959627

将 bin 目录添加到 Path 中

目前 mongod 命令所在目录路径是 ~/mongodb/binmongosh 命令所在目录路径是 ~/mongosh/bin ,需要将这两个路径添加到 Path 环境变量中。

使用 vim 编辑文件:

# vim ~/.bash_profile 

Path 一行最后追加这两个目录,然后保存退出:

image-20221109001130375

然后执行source 命令,重新加载环境变量,使刚才的配置生效:

# source ~/.bash_profile

启动数据库服务

MongoDB 服务在启动时需要指定数据存储的目录。如果没有指定的话,默认会去找 /data/db/ 目录。

上面在 Windows 系统使用 msi 安装包安装时就指定好了数据目录和日志目录。如果使用的是 zip 压缩包,则默认的数据存储目录是当前磁盘卷的 \data\db\ 目录。

如果数据目录不存在或不可写,那么服务器端将无法启动。因此在启动 MongoDB 服务之前,一定要确保数据目录存在且对该目录有写权限。

先建立两个目录:

# mkdir -p /data/mongodb/data
# mkdir -p /data/mongodb/log

使用 mongod 命令启动数据库服务:

# mongod --fork --dbpath=/data/mongodb/data --logpath=/data/mongodb/log/mongo.log
  • –fork:在基于 Unix 的系统中,使用 fork 创建服务器进程,将 MongoDB 服务作为守护进程运行。如果指定了 --fork,则必须同时指定 --logpath。
  • –dbpath:指定存放 MongoDB 数据的目录,启动服务时必须指定。
  • –logpath:默认日志是打印在命令行中的,使用该选项指定日志输出的文件。如果对此目录有写权限且文件不存在,则会自动创建该文件。如果日志文件已经存在,默认会覆盖掉该文件,并删除所有旧的日志。如果希望保留旧的日志,除了使用 --logpath 之外,还应该使用 --logappend 选项。

image-20221109001827550

连接到 MongoDB 服务

使用 mongosh 命令连接服务:

# mongsh

默认连接到 mongodb:localhost:27017

image-20221109002051449

已经正常连接到 MongoDB 服务了,之后就能在 shell 中操作数据库了。

总结

本文详细介绍了如何在 Windows、Linux 下安装最新版的 MongoDB 数据库。相比于 5.x,新版本的 MongoDB 在安装时的变化是将从前的 mongo 命令废弃,需要用户单独安装 MongoDB Shell 来操作数据库。如果不需要使用 shell ,则可以省去这一步。

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

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

相关文章

线性代数的学习和整理14: 线性方程组求解

目录 1 线性方程组 2 有解,无解 3 解的个数 1 线性方程组 A*xy 3根直线的交点,就是解 无解的情况 无解: 三线平行无解:三线不相交 有解 有唯一解:三线相交于一点有无数解:三条线重叠 2 齐次线性方程组…

vector quantized diffusion model for text-to-image synthesis

CVPR 2022论文分享会 - 基于VQ-Diffusion的文本到图像合成_哔哩哔哩_bilibiliCVPR 2022论文分享会 - 基于VQ-Diffusion的文本到图像合成, 视频播放量 1438、弹幕量 2、点赞数 38、投硬币枚数 12、收藏人数 40、转发人数 13, 视频作者 微软科技, 作者简介 大家好我是田老师&…

【电源专题】单节锂离子电池的保护的基本原理

为什么需要保护 锂离子电池在使用中最重要的是要确保它不会被过度充电和放电,这两种行为对它的伤害都是不可修复的,甚至可能还是危险的。因为它的内部材料结构被破坏了,就什么问题都可能表现出来。 因此使用中首先要做的就是要给它加上保护电路,确保过度充放电的行为不会…

系统报错msvcp120.dll丢失的解决方法,常见的三种解决方法

今天为大家讲述关于系统报错msvcp120.dll丢失的解决方法。在这个信息爆炸的时代,我们每个人都可能遇到各种各样的问题,而这些问题往往需要我们去探索、去解决。今天,我将带领大家走进这个神秘的世界,一起寻找解决msvcp120.dll丢失…

LONG-TAILED RECOGNITION 精读

BackGround 解决类别不平衡问题一般的思路: re-sample the data 重采样design specific loss functions that better facilitate learning with imbalanced data 设计针对不平衡数据的损失函数enhance recognition performance of the tail classes by transferri…

【NVIDIA CUDA】2023 CUDA夏令营编程模型(二)

博主未授权任何人或组织机构转载博主任何原创文章,感谢各位对原创的支持! 博主链接 本人就职于国际知名终端厂商,负责modem芯片研发。 在5G早期负责终端数据业务层、核心网相关的开发工作,目前牵头6G算力网络技术标准研究。 博客…

为啥外卖小哥宁愿600一月租电动车,也不花2、3千买一辆送外卖!背后的原因......

大家好!我是菜哥! 又到周末了,我们聊点非技术的东西。最近知乎“为何那些穿梭于城市大街小巷的外卖小哥,宁愿每月掏出600块租一辆电动车,也不愿意掏出2、3千买一辆呢?” 冲上热榜! 听起来有点“…

redis学习笔记 - 进阶部分

文章目录 redis单线程如何处理并发的客户端,以及为何单线程快?redis的发展历程:redis单线程和多线程的体现:redis3.x单线程时代但性能很快的主要原因:redis4.x开始引入多线程:redis6/redis7引入多线程IO&am…

UDP通信、本地套接字

#include <sys/types.h> #include <sys/socket > ssize_t sendto(int sockfd, const void *buf, size_t len, int flags,const struct sockaddr *dest_addr, socklen_t addrlen);- 参数&#xff1a;- sockfd : 通信的fd- buf : 要发送的数据- len : 发送数据的长度…

leetcode 567. 字符串的排列(滑动窗口-java)

滑动窗口 字符串的排列滑动窗口代码演示进阶优化版 上期经典 字符串的排列 难度 -中等 leetcode567. 字符串的排列 给你两个字符串 s1 和 s2 &#xff0c;写一个函数来判断 s2 是否包含 s1 的排列。如果是&#xff0c;返回 true &#xff1b;否则&#xff0c;返回 false 。 换句…

curl --resolve参数的作用

之所以会有这样的操作&#xff0c;是因为域名一般对应的都是一个反向代理&#xff0c;直接请求域名&#xff0c;反向代理会将流量随机选一台机器打过去&#xff0c;而无法确保所有的机器都可用。所以直接用ip。 在 curl 命令中&#xff0c;--resolve 参数用于指定自定义的主机名…

【LeetCode-中等题】2. 两数相加

文章目录 题目方法一&#xff1a;借助一个进制位&#xff0c;以及更新尾结点方法一改进&#xff1a;相比较第一种&#xff0c;给head一个临时头节点&#xff08;开始节点&#xff09;&#xff0c;最后返回的时候返回head.next&#xff0c;这样可以省去第一次的判断 题目 方法一…

Java-继承和多态(上)

面向对象思想中提出了继承的概念&#xff0c;专门用来进行共性抽取&#xff0c;实现代码复用。 继承(inheritance)机制&#xff1a;继承主要解决的问题是&#xff1a;共性的抽取&#xff0c;实现代码复用。 继承的语法 在Java中如果要表示类之间的继承关系&#xff0c;需要借助…

2 hadoop的目录

1. 目录结构&#xff1a; 其中比较的重要的路径有&#xff1a; hdfs,mapred,yarn &#xff08;1&#xff09;bin目录&#xff1a;存放对Hadoop相关服务&#xff08;hdfs&#xff0c;yarn&#xff0c;mapred&#xff09;进行操作的脚本 &#xff08;2&#xff09;etc目录&#x…

docker之 Consul(注册与发现)

目录 一、什么是服务注册与发现&#xff1f; 二、什么是consul 三、consul 部署 3.1建立Consul服务 3.1.1查看集群状态 3.1.2通过 http api 获取集群信息 3.2registrator服务器 3.2.1安装 Gliderlabs/Registrator 3.2.2测试服务发现功能是否正常 3.2.3验证 http 和 ng…

Seaborn绘制热力图的子图

Seaborn绘制热力图的子图 提示&#xff1a;如何绘制三张子图 绘制的时候&#xff0c;会出现如下问题 &#xff08;1&#xff09;如何绘制1*3的子图 &#xff08;2&#xff09;三个显示条&#xff0c;如何只显示最后一个 提示&#xff1a;下面就展示详细步骤 Seaborn绘制热力…

虾皮shopee国际站区域根据ID取商品详情 API 返回值说明

虾皮shopee国际站区域根据ID取商品详情 API 数据代码如下&#xff1a; item_get-根据ID取商品详情 shopee.item_get 公共参数 名称类型必须描述技术交流18179014480keyString是调用key&#xff08;必须以GET方式拼接在URL中&#xff09;API接口接入secretString是调用密钥a…

数据结构(Java实现)-包装类和泛型

包装类 在Java中&#xff0c;由于基本类型不是继承自Object&#xff0c;为了在泛型代码中可以支持基本类型&#xff0c;Java给每个基本类型都对应了 一个包装类型。 基本数据类型和对应的包装类 装箱和拆箱 装箱操作&#xff0c;新建一个 Integer 类型对象&#xff0c;将 i 的…

css选择器,只有第一个不加边框,其余都加

我们在开发中&#xff0c;经常会遇到这样的场景&#xff1a; 要给除了第一个以外的其他元素添加样式&#xff0c;那么我们通过css选择器就可以做到这一点&#xff0c;往下看吧&#xff01; 1. 示例代码 2. 效果展示

Transformer模块(Restormer)

由一个MDTA模块和一个GDFN模块组成一个Transformer Block 我们看一下代码实现&#xff1a; class TransformerBlock(nn.Module):def __init__(self, dim, num_heads, ffn_expansion_factor, bias, LayerNorm_type):super(TransformerBlock, self).__init__()self.norm1 Laye…