MongoDB 有两个版本:Community Edition(社区版) 和 Enterprise Edition(企业版),不同版本适用于不同的平台,从 3.4 版本开始,已经不再支持 32 位 x86 平台,同时在较新版本 5.0+ 已经不再支持 RHEL / CentOS 6、Ubuntu 16.04、macOS 10.13,其他版本可支持的平台大家可以查看其官方文档https://docs.mongodb.com/manual/installation/,有详细说明,大家根据自己的系统版本选择对应的 MongoDB 版本,不要盲目安装。
OS | Server | Version | Port |
---|---|---|---|
CentOS 8.3(10.150.16.95) | MongoDB | 5.0+ | 8090(默认27017) |
1、配置包管理系统
vim /etc/yum.repos.d/mongodb-org-5.0.repo
[mongodb-org-5.0]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/5.0/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-5.0.asc
如果要安装其他版本,更改一下上面内容即可;
更改地方:
- baseurl:xxx
- gpgkey:xxx(或者说把 gpgcheck=1 改成 gpgcheck=0,就不用更改这一项了)
2、建立缓存
yum makecache
3、安装
# 安装最新版
yum install -y mongodb-org
# 安装指定版
yum install -y \
mongodb-org-5.0.3 \
mongodb-org-database-5.0.3 \
mongodb-org-server-5.0.3 \
mongodb-org-shell-5.0.3 \
mongodb-org-mongos-5.0.3 \
mongodb-org-tools-5.0.3
4、固定封装,防止意外升级(针对 yum 方式安装)
# 最新版本封装
echo "exclude=mongodb-org,mongodb-org-database,mongodb-org-server,mongodb-org-shell,mongodb-org-mongos,mongodb-org-tools" >> /etc/yum.conf
# 指定版本封装
echo "mongodb-org-5.0.5,mongodb-org-database-5.0.5,mongodb-org-server-5.0.5,mongodb-org-shell-5.0.5,mongodb-org-mongos-5.0.5,mongodb-org-tools-5.0.5" >> /etc/yum.conf
5、默认安装路径
/var/lib/mongo
(数据目录)/var/log/mongodb
(日志目录)6、更改默认路径(可选)
新建空目录
mkdir -p /data/mongodb/data # 数据存储路径
mkdir -p /data/mongodb/logs # 日志存储路径
touch /data/mongodb/logs/mongod.log
# 修改属主和属组
cd /data/
chown -R mongod:mongod mongodb/
修改配置文件
...
# 日志路径配置
systemLog:
destination: file
logAppend: true
path: /data/mongodb/logs/mongod.log
# 数据路径配置
storage:
dbPath: /data/mongodb/data
journal:
enabled: true
# 其他配置
net:
port: 8090 # 自定义,不要冲突(默认端口27017)
bindIp: 10.150.16.95 # 绑定自身IP
...
7、启动服务
[root@zhurs data]# systemctl enable mongod.service
[root@zhurs data]# systemctl start mongod.service
[root@zhurs data]# netstat -lntp |grep mongo
tcp 0 0 10.150.16.95:8090 0.0.0.0:* LISTEN 1776642/mongod
如何卸载?
停止 MongoDB
systemctl stop mongod.service
删除包
yum remove -y `rpm -qa | grep mongodb-org`
删除数据目录
# 默认的(因为安装时会生成)
rm -rf /var/log/mongodb
rm -rf /var/lib/mongo
# 自定义的
rm -rf /data/mongodb
至此,yum 方式安装/卸载的步骤已经完成!!
安装包下载路径:
1、wget在线下载或上传至服务器并解压
tar -xzf mongodb-linux-x86_64xxx.tgz -C /opt/
2、添加环境变量(软连接)
ln -s /opt/mongodb-linux-x86_64xxx/bin/* /usr/local/bin/
3、创建存储目录
mkdir -p /data/mongodb/data # 数据存储路径
mkdir -p /data/mongodb/logs # 日志存储路径
touch /data/mongodb/logs/mongod.log
4、创建 mongod 启动用户
默认情况下,MongoDB 使用
mongod
用户帐户运行。
useradd -r mongod -s /shin/nologin # 创建一个非登录的系统用户
5、存储目录授权
chown -R mongod:mongod /data/mongodb/
6、创建配置文件
Github 获取:https://github.com/mongodb/mongo/blob/master/rpm/mongod.conf
vim /etc/mongod.conf
# mongod.conf
# for documentation of all options, see:
# http://docs.mongodb.org/manual/reference/configuration-options/
# where to write logging data.
systemLog:
destination: file
logAppend: true
path: /data/mongodb/logs/mongod.log
# Where and how to store data.
storage:
dbPath: /data/mongodb/data
journal:
enabled: true
# engine:
# wiredTiger:
# how the process runs
processManagement:
fork: true # fork and run in background
pidFilePath: /data/mongodb/data/mongod.pid # location of pidfile
timeZoneInfo: /usr/share/zoneinfo
# network interfaces
net:
port: 27017
bindIp: 0.0.0.0 # Enter 0.0.0.0,:: to bind to all IPv4 and IPv6 addresses or, alternatively, use the net.bindIpAll setting.
#security:
#operationProfiling:
#replication:
#sharding:
## Enterprise-Only Options
#auditLog:
#snmp:
主要修改几个部分:
- systemLog.path: /data/mongodb/logs/mongod.log
- storage.dbPath: /data/mongodb/data
- processManagement.pidFilePath: /data/mongodb/data/mongod.pid
- net.bindIp: 0.0.0.0(或本机IP)
7、配置 systemd 管理
cd /usr/lib/systemd/system/
cat >>mongodb.service<<"EOF"
[Unit]
Description=mongodb
After=network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
ExecStart=/usr/local/bin/mongod --config /etc/mongod.conf
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/usr/local/bin/mongod --shutdown --config /etc/mongod.conf
PrivateTmp=true
[Install]
WantedBy=multi-user.target
EOF
8、启动服务
[root@zhurs mongodb]# systemctl daemon-reload
[root@zhurs mongodb]# systemctl enable mongodb.service
[root@zhurs mongodb]# systemctl start mongodb.service
[root@zhurs mongodb]# netstat -lntp |grep mongo
tcp 0 0 0.0.0.0:27017 0.0.0.0:* LISTEN 1787469/mongod
如何卸载?
停止 MongoDB
systemctl stop mongod.service
删除包(二进制)
[root@zhurs opt]# which mongo
/usr/local/bin/mongo
[root@zhurs opt]# ll /usr/local/bin/mongo
lrwxrwxrwx 1 root root 22 Dec 31 11:44 /usr/local/bin/mongo -> /opt/mongodb/bin/mongo
[root@zhurs opt]# rm -rf /opt/mongodb
删除数据目录
# 自定义的
rm -rf /data/mongodb
至此,二进制方式安装/卸载的步骤已经完成!!
自工作以来,部署过无数种应用,刚开始接触的时候,是疯狂的从百度上查阅别人的博客教程,但最后会发现全部是坑,因为他们的一些配置非常不规范,非常容易出错。因此,以上的部署过程基本上都是参照官方部署文档来执行的,这样可以保证别人查阅我资料的时候尽量少踩坑,因为我们的博客是用来帮助别人的,而不是让别人来踩坑的,同时这也是对自己博客的一种规范。
<点击跳转至开头>