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

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

Windows 安装

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

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

msi 安装

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

勾选同意:

选择一个完整安装:

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

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

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

安装成功:

查看 MongoDB 服务的状态

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

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

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

MongoDB 目录

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

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

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

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

安装 MongoDB Shell

点击跳转,下载压缩包:

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

访问 MongoDB 服务

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

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

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

shell 复制代码
show dbs

设置环境变量

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

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

双击打开 Path 变量:

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

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

Linux 安装

安装 MongoDB

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

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

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

bash 复制代码
# wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel80-6.0.2.tgz

查看下载好的安装包:

bash 复制代码
# ls
mongodb-linux-x86_64-rhel80-6.0.2.tgz

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

bash 复制代码
# 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

进入安装包目录:

bash 复制代码
# 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 目录存放数据库提供的命令:

安装 mongodb shell

下载安装包:

bash 复制代码
# wget https://downloads.mongodb.com/compass/mongosh-1.6.0-linux-x64.tgz

解压:

bash 复制代码
# tar -zfx mongosh-1.6.0-linux-x64.tgz  

重命名解压后的目录:

bash 复制代码
# mv mongosh-1.6.0-linux-x64.tgz mongosh

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

将 bin 目录添加到 Path 中

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

使用 vim 编辑文件:

bash 复制代码
# vim ~/.bash_profile 

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

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

bash 复制代码
# source ~/.bash_profile

启动数据库服务

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

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

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

先建立两个目录:

bash 复制代码
# mkdir -p /data/mongodb/data
# mkdir -p /data/mongodb/log

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

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

连接到 MongoDB 服务

使用 mongosh 命令连接服务:

bash 复制代码
# mongsh

默认连接到 mongodb:localhost:27017

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

总结

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

相关推荐
Tttian6222 分钟前
基于Pycharm与数据库的新闻管理系统(2)Redis
数据库·redis·pycharm
敲啊敲952716 分钟前
5.npm包
前端·npm·node.js
vvw&18 分钟前
如何在 Ubuntu 22.04 上安装 Graylog 开源日志管理平台
linux·运维·服务器·ubuntu·开源·github·graylog
brrdg_sefg30 分钟前
Rust 在前端基建中的使用
前端·rust·状态模式
o(╥﹏╥)38 分钟前
在 Ubuntu 上安装 VS Code
linux·运维·vscode·ubuntu·vs
做梦敲代码1 小时前
达梦数据库-读写分离集群部署
数据库·达梦数据库
m0_748230941 小时前
Rust赋能前端: 纯血前端将 Table 导出 Excel
前端·rust·excel
AI慧聚堂1 小时前
自动化 + 人工智能:投标行业的未来是什么样的?
运维·人工智能·自动化
qq_589568101 小时前
Echarts的高级使用,动画,交互api
前端·javascript·echarts
不爱学英文的码字机器1 小时前
[Linux] Shell 命令及运行原理
linux·运维·服务器