官方安装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
输入, echo
和 tee
命令可以把内容输入到文件中。 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
2.1. 安装MongoDB
当前最新稳定版本为3.6.5
, 则选择安装最新稳定版的mongodb
安装mongodb, 会安装软件包mongodb-org
及其依赖包mongodb-org-server
、mongodb-org-mongos
、mongodb-org-shell
、mongodb-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服务
相关阅读: