How To Install MongoDB 4.2 on CentOS 7 / Fedora 31/30/29
source link: https://computingforgeeks.com/installing-mongodb-on-centos-fedora/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
Welcome to our guide on how to install MongoDB 4.2 on CentOS 7 / Fedora 31/30/29/28. MongoDB is an open source NoSQL database system written in C++. It is designed for high scalability, performance, and availability.
Step 1: Update System
We always work on an updated system
--- CentOS ---
$ sudo yum -y update
--- Fedora ---
$ sudo dnf -y update
Step 2: Add DNF/YUM MongoDB Repositories
The first step in the installation of MongoDB 4 on CentOS 7 / Fedora 30/29/28 is to add the repositories to the system.
Add MongoDB 4 repository.
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
Step 3: Install MongoDB 4.2 on CentOS 7 / Fedora 31/30/29
Next is to install mongodb-org
package on CentOS 7 / Fedora 31/30/29/28.
Install MongoDB 4 on Fedora 31/30/29/28.
sudo dnf -y install mongodb-org
Install MongoDB 4 on CentOS 7:
sudo yum -y install mongodb-org
You can check the version of MongoDB installed using the following command:
$ mongo -version
MongoDB shell version v4.2.1
git version: edf6d45851c0b9ee15548f0f847df141764a317e
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
The installation of mongodb-org
package will install:
mongodb-org-server – This provides MongoDB daemon mongod
mongodb-org-mongos – This is a MongoDB Shard daemon
mongodb-org-shell – This provides a shell to MongoDB
mongodb-org-tools – MongoDB tools used for export, dump, import e.t.c
Step 4: Configure MongoDB (Optional)
You can customize MongoDB installation before starting the service.
Label MongoDB port
If you have SELinux in enforcing mode, you may need to label port 27017
sudo semanage port -a -t mongod_port_t -p tcp 27017
Allow MongoDB Port on the firewall
If you have an active firewalld
service on your server and would like MongoDB service to be accessible over the network, allow port 27017/tcp
:
sudo firewall-cmd --add-port=27017/tcp --permanent
sudo firewall-cmd --reload
You can also limit access based on source address
sudo firewall-cmd --permanent --add-rich-rule "rule family="ipv4" \
source address="192.168.5.0/24" port protocol="tcp" port="27017" accept"
Using secondary disk for MongoDB data (Optional)
You can choose to use a dedicated disk to store MongoDB data.
Step 1: Partition secondary disk for MongoDB data:
$ lsblk | grep vdb
vdb 252:16 0 50G 0 disk
Step 2: Create a GPT partition table for the secondary disk, it can be more than one disk:
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
Step 3: Create LVM volume, this will make it easy to extend the partition:
sudo pvcreate /dev/vdb1
sudo vgcreate vg0 /dev/vdb1
sudo lvcreate -n mongo -l 100%FREE vg0
Step 4: Create XFS
filesystem on the Logical Volume created.
$ 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
Step 5: Create a mount point and mount the partition
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
Step 7: Confirm that the partition mount was successful:
$ df -hT | grep /var/lib/mongo
/dev/mapper/vg0-mongo xfs 50G 33M 50G 1% /var/lib/mongo
Step 8: Set MongoDB data store location
$ sudo vim /etc/mongod.conf
storage:
dbPath: /var/lib/mongo
journal:
enabled: true
Step 5: Start & Enable MongoDB Service
The last step is to start and enable MongoDB service to start on boot
sudo systemctl start mongod.service
sudo systemctl enable mongod.service
Check status by running:
$ 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.computingforgeeks.com systemd[1]: Starting MongoDB Database Server...
Nov 03 07:31:19 fed31.computingforgeeks.com mongod[4379]: about to fork child process, waiting until server is ready for connections.
Nov 03 07:31:19 fed31.computingforgeeks.com mongod[4379]: forked process: 4381
Nov 03 07:31:20 fed31.computingforgeeks.com mongod[4379]: child process started successfully, parent exiting
Nov 03 07:31:20 fed31.computingforgeeks.com systemd[1]: Started MongoDB Database Server.
Nov 03 07:31:20 fed31.computingforgeeks.com systemd[1]: /usr/lib/systemd/system/mongod.service:16: PIDFile= references a path below legacy directo>
For Authentication, check our guide on How to configure MongoDB 4 authentication.
More DB guides:
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK