如何在CentOS 7/Fedora 31/30/29上安装MongoDB 4.2

时间:2020-02-23 14:31:45  来源:igfitidea点击:

欢迎来到我们的教程,了解如何在CentOS 7/Fedora 31/30/29/28上安装MongoDB 4.2. MongoDB是用C ++编写的开源NoSQL数据库系统。它旨在实现高可伸缩性,性能和可用性。

更新系统

我们始终在更新的系统上工作

--- CentOS --
$sudo yum -y update

--- Fedora --
$sudo dnf -y update

添加DNF/YUM MongoDB存储库

在CentOS 7/Fedora 30/29/28上安装MongoDB 4的第一步是将存储库添加到系统中。

添加MongoDB 4存储库。

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

在CentOS 7/Fedora 31/30/29上安装MongoDB 4.2

接下来是在CentOS 7/Fedora 31/30/29/28上安装mongodb-org软件包。

在Fedora 31/30/29/28上安装MongoDB 4.

sudo dnf -y install mongodb-org

在CentOS 7上安装MongoDB 4:

sudo yum -y install mongodb-org

我们可以使用以下命令检查安装的MongoDB的版本:

$mongo -version
MongoDB shell version v4.2.1
git version: edf6d45851c0b9ee15548f0f847df141764a317e
OpenSSL version: OpenSSL 1.0.1e-fips 11 Nov 2013
allocator: tcmalloc
modules: none
build environment:
    distmod: rhel70
    distarch: x86_64
    target_arch: x86_64

mongodb-org软件包的安装将安装:

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

配置MongoDB(可选)

我们可以在启动服务之前自定义MongoDB安装。

标签MongoDB端口

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

sudo semanage port -a -t mongod_port_t -p tcp 27017
在防火墙上允许MongoDB端口

如果服务器上有活动的firewalld服务,并且希望可以通过网络访问MongoDB服务,请允许端口27017/tcp

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

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

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

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

我们可以选择使用专用磁盘来存储MongoDB数据。

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

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

:为辅助磁盘创建一个GPT分区表,它可以是多个磁盘:

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 vg0 /dev/vdb1
sudo lvcreate -n mongo -l 100%FREE vg0

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

$sudo mkfs.xfs /dev/mapper/vg0-mongo
meta-data=/dev/mapper/vg0-mongo isize=512    agcount=4, agsize=6553344 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0, sparse=0
data     =                       bsize=4096   blocks=26213376, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal log           bsize=4096   blocks=12799, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0

:创建安装点并安装分区

echo "/dev/mapper/vg0-mongo /var/lib/mongo xfs defaults 0 0" | sudo tee -a /etc/fstab
sudo mount -a
sudo chown -R mongod:mongod /var/lib/mongo
sudo chmod -R 775 /data/mongo

:确认分区安装成功:

$df -hT | grep  /var/lib/mongo
/dev/mapper/vg0-mongo xfs        50G   33M   50G   1% /var/lib/mongo

:设置MongoDB数据存储位置

$sudo vim /etc/mongod.conf
 storage:
 dbPath: /var/lib/mongo 
 journal:
   enabled: true

启动并启用MongoDB服务

最后一步是启动并启用MongoDB服务以在启动时启动

sudo systemctl start mongod.service
sudo systemctl enable mongod.service

通过运行以下命令检查状态:

$sudo 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 Sun 2019-11-03 07:31:20 UTC; 6s ago
     Docs: https://docs.mongodb.org/manual
 Main PID: 4381 (mongod)
   Memory: 72.0M
      CPU: 509ms
   CGroup: /system.slice/mongod.service
           └─4381 /usr/bin/mongod -f /etc/mongod.conf

Nov 03 07:31:19 fed31.theitroad.local systemd[1]: Starting MongoDB Database Server...
Nov 03 07:31:19 fed31.theitroad.local mongod[4379]: about to fork child process, waiting until server is ready for connections.
Nov 03 07:31:19 fed31.theitroad.local mongod[4379]: forked process: 4381
Nov 03 07:31:20 fed31.theitroad.local mongod[4379]: child process started successfully, parent exiting
Nov 03 07:31:20 fed31.theitroad.local systemd[1]: Started MongoDB Database Server.
Nov 03 07:31:20 fed31.theitroad.local systemd[1]: /usr/lib/systemd/system/mongod.service:16: PIDFile= references a path below legacy directo>