官方安装MongoDB英文教程: https://docs.mongodb.com/getting-started/shell/installation/

p.s. 本文针对64位的linux发行版本。

1. Ubuntu下安装或卸载MongoDB

1.1. 包管理系统APT添加MongoDB公钥key

使用ubuntu的包管理系统(即dpkg和APT)导入公钥:

$ sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 2930ADAE8CAF5059EE73BB4B58712A2291FA4AD5

MongoDB的公钥Key会更新, 最新的公钥只能在官网Ubuntu系统下安装MongoDB的页面中查找:
https://docs.mongodb.com/master/tutorial/install-mongodb-on-ubuntu/

任选以上其中一个公钥, 执行命令回车添加即可。

1.2. 创建MongoDB软件源文件

添加MongoDB软件源:

$ vim /etc/apt/sources.list.d/mongodb.list

mongodb.list文件内容由ubuntu的版本决定。 ubuntu版本的命令规则是根据正式版发行的年月命名, ubuntu16.04也就意味着2016年04月发行。 除此之处, 每个版本的ubuntu还有一个用2个英文单词组成的开发代号, 都是动物名称组成。 安装软件源的版本则需要对应一下。

p.s. ubuntu版本每半年(即6个月)发布一个版本, 每2年发布一个长期支持LTS(Long Term Support)版本。

ubuntu12.04版本的代号是穿山甲 Precise Pangolin, 则输入内容是:

deb [ arch=amd64 ] https://repo.mongodb.org/apt/ubuntu precise/mongodb-org/3.6 multiverse

ubuntu14.04版本的代号是塔尔羊 Trusty Tahr, 则输入内容是:

deb [ arch=amd64 ] https://repo.mongodb.org/apt/ubuntu trusty/mongodb-org/3.6 multiverse

ubuntu16.04版本的代号是地松鼠 Xenial Xerus, 则输入内容是:

deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.6 multiverse

p.s. 知道了配置软件源的原理之后, 这里提供了一种快速配置的方法, 不需要文本编辑器 vim 输入, echotee 命令可以把内容输入到文件中。 lsb_release -sc 则可以自动提取版本动物名, 所以以下命令可以替代上面的 vim 输入内容的方法。

直接输入命令:

echo "deb https://repo.mongodb.org/apt/ubuntu "$(lsb_release -sc)"/mongodb-org/3.6 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb.list

官方MongoDB的软件源仓库可以对大陆用户不太友好, 建议使用阿里云的MongoDB软件源仓库, 执行以下命令:

echo "deb http://mirrors.aliyun.com/mongodb/apt/ubuntu "$(lsb_release -sc)"/mongodb-org/3.6 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb.list

若想删除mongodb软件源, 则直接用rm命令从软件源目录下删除mongodb.list, 如下:

$ sudo rm -fr /etc/apt/sources.list.d/mongodb.list
1.3. 更新软件源

ubuntu的软件源文件都存放在目录 /etc/apt/sources.list.d/ 下, 执行以下命令扫描新增的mongodb软件源文件mongodb.list

$ sudo apt-get update
1.4. 安装MongoDB
$ sudo apt-get install -y mongodb-org

参数-y表示yes, 意味着中途不用确认, 直接自动安装。

1.5. 卸载MongoDB
$ sudo service mongod stop
$ sudo apt-get purge mongodb-org*

$ sudo apt-get autoremove
$ sudo rm -r /var/log/mongodb (日志目录)
$ sudo rm -r /var/lib/mongodb (数据目录)
1.6. MongoDB相关说明
  • mongodb默认服务名为: mongod
  • mongodb默认的数据文件目录为: /var/lib/mongodb
  • mongodb默认的日志文件目录为: /var/log/mongodb
  • mongodb默认的配置文件为: /etc/mongod.conf
  • mongodb默认的端口为:27017
  • 配置文件可指定日志(systemLog.path)和数据文件目录(storage.dbPath), 以及端口等。
  • mongodb默认的运行日志文件: /var/log/mongodb/mongod.log
1.7. 设置MongoDB服务开机启动

安装mongodb3.6版本默认会在目录/lib/systemd/system/下创建MongoDB的服务文件mongod.service, 如果没有则手动在/lib/systemd/system/下创建文件mongod.service, 如下:

# cd /lib/systemd/system/
# vim mongod.service

mongod.service文件内容如下:

[Unit]
Description=High-performance, schema-free document-oriented database
After=network.target
Documentation=https://docs.mongodb.org/manual

[Service]
User=mongodb
Group=mongodb
ExecStart=/usr/bin/mongod --config /etc/mongod.conf
PIDFile=/var/run/mongodb/mongod.pid
# file size
LimitFSIZE=infinity
# cpu time
LimitCPU=infinity
# virtual memory size
LimitAS=infinity
# open files
LimitNOFILE=64000
# processes/threads
LimitNPROC=64000
# locked memory
LimitMEMLOCK=infinity
# total threads (user+kernel)
TasksMax=infinity
TasksAccounting=false

# Recommended limits for for mongod as specified in
# http://docs.mongodb.org/manual/reference/ulimit/#recommended-settings

[Install]
WantedBy=multi-user.target

或简化为:

[Unit]
Description=High-performance, schema-free document-oriented database
After=network.target
Documentation=https://docs.mongodb.org/manual

[Service]
User=mongodb
Group=mongodb
ExecStart=/usr/bin/mongod --quiet --config /etc/mongod.conf

[Install]
WantedBy=multi-user.target

:wq保存退出vim编辑文件mongod.service, 更新systemctl服务:

# systemctl daemon-reload

MongoDB的服务名为mongod, 执行以下命令实现开机启动:

# systemctl start mongod
# systemctl enable mongod
Created symlink from /etc/systemd/system/multi-user.target.wants/mongod.service to /lib/systemd/system/mongod.service.
$ sudo update-rc.d -f mongod defaults

检测MongoDB服务mongod是否以端口27017启动:

# netstat -plntu
或
# ps aux|grep mongod
或
# lsof -i:27017
或 
# pgrep mongo -l # 注意:-l是英文字母l,不是阿拉伯数字1, 显示进程号和进程名
1095 mongod

查看MongoDB版本:

$ mongod --version
db version v3.6.2
git version: 489d177dbd0f0420a8ca04d39fd78d0a2c539420
OpenSSL version: OpenSSL 1.0.2g  1 Mar 2016
allocator: tcmalloc
modules: none
build environment:
    distmod: ubuntu1604
    distarch: x86_64
    target_arch: x86_64

删除mongod开机启动执行命令:

$ sudo update-rc.d -f mongod remove

2. Centos下安装或卸载MongoDB

install-mongodb-on-red-hat

2.1. 安装MongoDB

当前最新稳定版本为3.6.5, 则选择安装最新稳定版的mongodb

安装mongodb, 会安装软件包mongodb-org及其依赖包mongodb-org-servermongodb-org-mongosmongodb-org-shellmongodb-org-tools

创建MongoDB软件源文件 /etc/yum.repos.d/mongodb-org-3.6.repo, 其内容为:

[mongodb-org-3.6]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.6/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-3.6.asc

更新yum缓存, 并安装mongodb

$ sudo yum update
$ sudo yum install -y mongodb-org
$ mongo --version
MongoDB shell version v3.6.5
git version: a20ecd3e3a174162052ff99913bc2ca9a839d618
OpenSSL version: OpenSSL 1.0.1e-fips 11 Feb 2013
allocator: tcmalloc
modules: none
build environment:
    distmod: rhel70
    distarch: x86_64
    target_arch: x86_64
2.2. 卸载MongoDB
$ sudo systemctl stop mongod  // sudo service mongod stop
$ sudo yum erase $(rpm -qa | grep mongodb-org)
$ sudo rm -r /var/log/mongodb
$ sudo rm -r /var/lib/mongo
2.3. 设置MongoDB服务开机启动
$ sudo chkconfig mongod on
2.4. mongodb服务管理
$ sudo systemctl start mongod   // 开启mongod服务
$ sudo systemctl restart mongod // 重启mongod服务
$ sudo systemctl stop mongod    // 停止mongod服务

相关阅读: