如何在RHEL 8 CentOS8 上安装MongoDB 4.4

时间:2020-02-23 14:30:47  来源:igfitidea点击:

在本指南中,我们将介绍在RHEL 8/CentOS 8上安装MongoDB 4.4的步骤。MongoDB是用C ++编写的开源NoSQL数据库系统,旨在确保可伸缩性,高性能和可用性。

MongoDB的常见用例是存储和管理大数据大小的文字文档集合,例如文本文档,电子邮件,XML文档以及许多其他文档。

在RHEL 8/CentOS 8上安装MongoDB 4.4

MongoDB 4在yum存储库上可用。通过运行以下命令将存储库添加到RHEL 8服务器:

sudo tee /etc/yum.repos.d/mongodb-org-4.repo<<EOF
[mongodb-org-4]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/8/mongodb-org/4.4/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-4.4.asc
EOF

我们需要以具有sudo特权的用户身份运行上述命令。

添加仓库后,安装mongodb-org软件包。

sudo yum install mongodb-org

按y键开始在CentOS 8上安装MongoDB4.x。 RHEL 8.

MongoDB Repository                                                                                                                                                    22 kB/s | 9.7 kB     00:00
Dependencies resolved.
=====================================================================================================================================================================================================
 Package                                               Architecture                Version                                                     Repository                                       Size
=====================================================================================================================================================================================================
Installing:
 mongodb-org                                           x86_64                      4.4.1-1.el8                                                 mongodb-org-4                                    10 k
Installing dependencies:
 cyrus-sasl                                            x86_64                      2.1.27-1.el8                                                rhel-8-baseos-rhui-rpms                          96 k
 cyrus-sasl-gssapi                                     x86_64                      2.1.27-1.el8                                                rhel-8-baseos-rhui-rpms                          49 k
 cyrus-sasl-plain                                      x86_64                      2.1.27-1.el8                                                rhel-8-baseos-rhui-rpms                          47 k
 mongodb-database-tools                                x86_64                      100.2.0-1                                                   mongodb-org-4                                    55 M
 mongodb-org-database-tools-extra                      x86_64                      4.4.1-1.el8                                                 mongodb-org-4                                    20 k
 mongodb-org-mongos                                    x86_64                      4.4.1-1.el8                                                 mongodb-org-4                                    22 M
 mongodb-org-server                                    x86_64                      4.4.1-1.el8                                                 mongodb-org-4                                    28 M
 mongodb-org-shell                                     x86_64                      4.4.1-1.el8                                                 mongodb-org-4                                    18 M
 mongodb-org-tools                                     x86_64                      4.4.1-1.el8                                                 mongodb-org-4                                    10 k
 python2                                               x86_64                      2.7.17-2.module+el8.3.0+7681+f1f02ded                       rhel-8-appstream-rhui-rpms                      109 k
 python2-libs                                          x86_64                      2.7.17-2.module+el8.3.0+7681+f1f02ded                       rhel-8-appstream-rhui-rpms                      6.0 M
 python2-pip-wheel                                     noarch                      9.0.3-18.module+el8.3.0+7707+eb4bba01                       rhel-8-appstream-rhui-rpms                      1.0 M
 python2-setuptools-wheel                              noarch                      39.0.1-12.module+el8.3.0+7075+8484f0d0                      rhel-8-appstream-rhui-rpms                      287 k
Installing weak dependencies:
 python2-pip                                           noarch                      9.0.3-18.module+el8.3.0+7707+eb4bba01                       rhel-8-appstream-rhui-rpms                      1.7 M
 python2-setuptools                                    noarch                      39.0.1-12.module+el8.3.0+7075+8484f0d0                      rhel-8-appstream-rhui-rpms                      642 k
Enabling module streams:
 python27                                                                          2.7

Transaction Summary
=====================================================================================================================================================================================================
Install  16 Packages

Total download size: 133 M
Installed size: 420 M
Is this ok [y/N]: y

还接受导入GPG密钥:

warning: /var/cache/dnf/mongodb-org-4-cef71e585db45e10/packages/mongodb-database-tools-100.2.0.x86_64.rpm: Header V3 RSA/SHA1 Signature, key ID 90cfb1f5: NOKEY
MongoDB Repository                                                                                                                                                   4.9 kB/s | 1.6 kB     00:00
Importing GPG key 0x90CFB1F5:
 Userid     : "MongoDB 4.4 Release Signing Key <theitroad@localhost>"
 Fingerprint: 2069 1EEC 3521 6C63 CAF6 6CE1 6564 08E3 90CF B1F5
 From       : https://www.mongodb.org/static/pgp/server-4.4.asc
Is this ok [y/N]: y

上述软件包的安装将安装以下依赖项软件包:

mongodb-org-server这提供了MongoDB daemonmongod
mongodb-org-mongos这是一个MongoDB Shard守护程序
mongodb-org-shell这为MongoDB提供了一个shell
mongodb-org-tools用于导出,转储和导入等的MongoDB工具

我们可以验证上述软件包的安装,例如

$rpm -qi mongodb-org-server 
Name : mongodb-org-server
Version : 4.4.1
Release : 1.el8
Architecture: x86_64
Install Date: Fri 06 Nov 2017 06:04:10 AM UTC
Group : Applications/Databases
Size : 82198023
License : SSPL
Signature : RSA/SHA1, Wed 09 Sep 2017 08:18:26 PM UTC, Key ID 656408e390cfb1f5
Source RPM : mongodb-org-4.4.1-1.el8.src.rpm
Build Date : Tue 08 Sep 2017 03:07:42 PM UTC
Build Host : ip-10-122-73-75.ec2.internal
Relocations : /usr
URL : http://www.mongodb.org
Summary : MongoDB database server

在RHEL 8/CentOS 8上配置MongoDB

安装软件包后,我们可以在启动服务之前开始自定义和配置MongoDB。

标签MongoDB端口

如果我们将SELinux设置为强制模式,则可能需要标记端口" 27017"

sudo semanage port -a -t mongod_port_t -p tcp 27017

允许防火墙上的mongo端口

如果服务器上运行了防火墙,并且希望可以通过网络访问MongoDB服务,请在防火墙上将其打开:

sudo firewall-cmd --add-port=27017/tcp --permanent
sudo firewall-cmd --reload

我们还可以根据源地址限制访问权限:

sudo firewall-cmd --permanent --add-rich-rule "rule family="ipv4" \
source address="10.10.20.0/24" port protocol="tcp" port="27017" accept"

使用辅助磁盘存储MongoDB数据可选

我们始终可以使用专用磁盘/虚拟磁盘来存储MongoDB数据。可以像下面这样配置

:为MongoDB数据分区辅助磁盘:

# lsblk  | grep vdb
vdb    252:16   0  50G  0 disk

:为辅助磁盘创建GPT分区表,它可以比onde磁盘更多

sudo parted -s -a optimal -- /dev/vdb mklabel gpt
sudo parted -s -a optimal -- /dev/vdb mkpart primary 0% 100%
sudo parted -s -- /dev/vdb align-check optimal 1

:创建LVM卷,这将使扩展分区变得容易

sudo pvcreate  /dev/vdb1
sudo vgcreate vg11 /dev/vdb1
sudo lvcreate -n data -l 100%FREE vg11

第4步:在创建的逻辑卷上创建XFS文件系统

sudo mkfs.xfs /dev/mapper/vg11-data

:创建安装点并安装分区

echo "/dev/mapper/vg11-data /data xfs defaults 0 0" | sudo tee -a /etc/fstab
sudo mkdir /data
sudo mount -a

:为MongoDB资料建立资料夹

sudo mkdir /data/mongo
sudo chown -R mongod:mongod /data/mongo
sudo chmod -R 775 /data/mongo

:确认分区安装成功:

df -hT | grep  /data/mongo

第8步:更改/etc/mongod.conf上的MongoDB数据存储位置

storage:
dbPath: /data/mongo 
journal:
  enabled: true

启动MongoDB服务

设置全部后,启动并设置mongod服务以在引导时启动。

sudo systemctl enable --now mongod

如果服务已成功启动,则应显示"正在运行"状态。

$systemctl status mongod.service 
 ● mongod.service - MongoDB Database Server
    Loaded: loaded (/usr/lib/systemd/system/mongod.service; enabled; vendor preset: disabled)
    Active: active (running) since Sat 2019-01-05 12:12:28 EAT; 4s ago
      Docs: https://docs.mongodb.org/manual
   Process: 2163 ExecStart=/usr/bin/mongod $OPTIONS (code=exited, status=0/SUCCESS)
   Process: 2161 ExecStartPre=/usr/bin/chmod 0755 /var/run/mongodb (code=exited, status=0/SUCCESS)
   Process: 2160 ExecStartPre=/usr/bin/chown mongod:mongod /var/run/mongodb (code=exited, status=0/SUCCESS)
   Process: 2158 ExecStartPre=/usr/bin/mkdir -p /var/run/mongodb (code=exited, status=0/SUCCESS)
  Main PID: 2166 (mongod)
    Memory: 70.1M
    CGroup: /system.slice/mongod.service
            └─2166 /usr/bin/mongod -f /etc/mongod.conf
 Jan 05 12:12:27 localhost.localdomain systemd[1]: Starting MongoDB Database Server…
 Jan 05 12:12:27 localhost.localdomain mongod[2163]: about to fork child process, waiting until server is ready for connections.
 Jan 05 12:12:27 localhost.localdomain mongod[2163]: forked process: 2166
 Jan 05 12:12:28 localhost.localdomain mongod[2163]: child process started successfully, parent exiting
 Jan 05 12:12:28 localhost.localdomain systemd[1]: Started MongoDB Database Server.

对于身份验证,请查看有关如何配置MongoDB 4身份验证的指南。