本文全部内容以MongoDB4.2社区版本为基础。
文章目录
- 一. 下载
- 二. 在Windows安装
- 三. 在Linux安装
- 四. 源码安装
- 依赖准备
- gcc8.0的安装及配置
- libcurl-devel或其他依赖包
- Python3.7(建议编译安装)
- 编译安装MongoDB
- 总结
- 参考
MonogoDB支持arm64、ppc64le、s390x和x86-64架构。兼容在Linux、Windows、MacOS等多种平台运行。
一. 下载
官方下载地址:https://www.mongodb.com/try/download/community
选择对应的操作系统与MongoDB版本进行下载即可。
二. 在Windows安装
对于Windows,官方提供了两种方式,即msi安装包与zip包。msi方式在安装时可以灵活地选择需要安装的组件,而zip中包含了所有已经编译好的mongodb组件可执行文件,开箱即用。
三. 在Linux安装
Mongodb Linux版本同样提供了两种方式,即安装包(如Redhat的rpm,Debian的deb等)与二进制可执行文件包(开箱即用),如下图。
其中安装包以各组件独立提供:
mongodb-mongos安装后仅包含mongos可执行文件;
mongodb-server安装后仅包含mongod可执行文件;
mongodb-shell安装后仅包含mongo可执行文件;
mongodb-tools包含所有mongodb提供的工具:mongodump、mongoexport、mongofiles、mongoimport、mongorestore、mongostat、mongotop
以Redhat安装包为例进行安装,执行 rpm -ivh 包名 即可安装对应组件,若存在其他依赖需一并进行安装。
二进制可执行文件包通过 tar zxvf mongodb-linux-x86_64-rhel70-4.2.23.tgz 解压即可,其中包含MongoDB所有的组件及工具包。
四. 源码安装
MongoDB作为开源软件,同样提供了源代码供用户下载,用户可按需求使用源代码进行MongoDB的安装。
下面以Centos7.6为例进行源代码编译安装。
依赖准备
- gcc 8.0或更新版本
- libcurl-devel
- Python 3.7 及 pip模块
- 编译安装种遇到的其他依赖
gcc8.0的安装及配置
yum install centos-release-scl-rh
yum install devtoolset-8-gcc-c++
source /opt/rh/devtoolset-8/enable
libcurl-devel或其他依赖包
yum install libcurl-devel
yum install xxxxxxxxx
Python3.7(建议编译安装)
#安装编译安装python相关依赖
yum install zlib
yum install zlib-devel
#编译安装python
wget https://www.python.org/ftp/python/3.7.9/Python-3.7.9.tgz
tar xvf Python-3.7.9.tgz
cd Python-3.7.9
./configure --prefix=/opt/python/python3.7
make && make install
#升级pip模块
/opt/python/python3.7/bin/python3.7 -m pip install --upgrade pip
编译安装MongoDB
wget https://fastdl.mongodb.org/src/mongodb-src-r4.2.23.zip
unzip mongodb-src-r4.2.23.zip
cd mongodb-src-r4.2.23
#pip安装编译相关python模块
/opt/python/python3.7/bin/python3.7 -m pip install -r etc/pip/compile-requirements.txt
#编译mongodb源码,如仅编译mongod将参数all改为 mongod即可
/opt/python/python3.7/bin/python3.7 buildscripts/scons.py all
#安装
/opt/python/python3.7/bin/python3.7 buildscripts/scons.py --prefix=/opt/mongo install
至此,源码安装MongoDB完成。
总结
源码安装的优势是可根据需求进行源代码修改,并可自由选择想要安装的组件,但过程则相对复杂。
以上多种安装方式各有优缺点,具体则根据个人实际情况进行选择。