Cài đặt MongoDB 4.4 Fedora 36 - Install MongoDB 4.4 on Fedora 36

Cách cài đặt MongoDB trên Fedora 35 sẽ được hướng dẫn chi tiết trong bài viết này. Cho những ai chưa biết, MongoDB là một cơ sở dữ liệu tài liệu miễn phí, mã nguồn mở được thiết kế để dễ dàng phát triển ứng dụng và mở rộng. Nó được phân loại là một cơ sở dữ liệu NoSQL và do đó nó lưu trữ dữ liệu trong các tài liệu linh hoạt giống như JSON. Điều này có nghĩa là các trường có thể thay đổi từ tài liệu này sang tài liệu khác và cấu trúc dữ liệu có thể thay đổi theo thời gian.

Bước 1: Thực hiện cập nhật hệ thống

Cập nhật hệ thống trước khi thực hiện cài đặt MongoDB.

### Fedora ###
sudo dnf -y update

Bước 2: Thêm kho lưu trữ MongoDB

Thêm kho lưu trữ vào hệ thống để bắt đầu cài đặt MongoDB:

cat <<EOF | sudo tee /etc/yum.repos.d/mongodb.repo
[mongodb-org-4.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

Cập nhật bộ nhớ cache chỉ mục của Yum:

sudo yum clean all
sudo yum makecache

Hiển thị danh sách các kho lưu trữ YUM có sẵn:

$ sudo yum repolist
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: centos.mirror.constant.com
* extras: nc-centos-mirror.iwebfusion.net
* updates: mirror.grid.uchicago.edu
repo id repo name status
base/7/x86_64 CentOS-7 - Base 10,072
droplet-agent/x86_64 DigitalOcean Droplet Agent 5
extras/7/x86_64 CentOS-7 - Extras 498
mongodb-org-4.4 MongoDB Repository 111
updates/7/x86_64 CentOS-7 - Updates 2,579
repolist: 13,265

Bước 3: Cài đặt MongoDB 4.4 trên Fedora 36

Bước tiếp theo là tiến hành cài đặt gói mongodb-org trên Fedora 36.

sudo dnf -y install mongodb-org

Thực hiện lệnh bên dưới để kiểm tra phiên bản MongoDB đã cài đặt:

$ mongo -version
MongoDB shell version v4.4.4
Build Info: {
"version": "4.4.4",
"gitVersion": "8db30a63db1a9d84bdcad0c83369623f708e0397",
"openSSLVersion": "OpenSSL 1.1.1q FIPS 5 Jul 2022",
"modules": [],
"allocator": "tcmalloc",
"environment": {
"distmod": "rhel80",
"distarch": "x86_64",
"target_arch": "x86_64"
}
}

Gói mongodb-org sẽ cài đặt các thành phần sau:

  • mongodb-org-server – Cung cấp dịch vụ MongoDB daemon
  • mongod mongodb-org-mongos – Dịch vụ con daemon MongoDB Shard
  • mongodb-org-shell – Cung cấp một môi trường shell cho MongoDB
  • mongodb-org-tools – Các công cụ MongoDB được sử dụng cho việc xuất, sao lưu, nhập và các tác vụ khác.

Bước 4: Cấu hình MongoDB (tùy chọn)

Bạn có thể tùy chỉnh quá trình cài đặt MongoDB trước khi khởi động dịch vụ.

Gắn nhãn cho cổng MongoDB

Nếu bạn đang sử dụng SELinux ở chế độ enforcing, có thể bạn cần đặt nhãn cho cổng 27017.

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

Cho phép cổng MongoDB trên tường lửa

Nếu dịch vụ firewalld đang hoạt động trên máy chủ của bạn và bạn muốn cho phép dịch vụ MongoDB có thể truy cập qua mạng, hãy mở cổng 27017/tcp:

sudo yum -y install firewalld && sudo systemctl enable --now firewalld
sudo firewall-cmd --add-port=27017/tcp --permanent
sudo firewall-cmd --reload

Bạn cũng có thể hạn chế quyền truy cập dựa trên địa chỉ nguồn.

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

Sử dụng ổ đĩa phụ cho dữ liệu MongoDB (tùy chọn)

Có những lúc bạn muốn sử dụng một ổ đĩa riêng để lưu trữ dữ liệu của MongoDB.

Bước 1: Chia ổ đĩa phụ thành các phân vùng để lưu trữ dữ liệu của MongoDB:

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

Bước 2: Trong ổ đĩa phụ, tạo một bảng phân vùng GPT, có thể một hoặc nhiều ổ đĩa:

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

Bước 3: Tạo khối LVM để mở rộng phân vùng dễ dàng hơn:

sudo pvcreate /dev/vdb1
sudo vgcreate vg0 /dev/vdb1
sudo lvcreate -n mongo -l 100%FREE vg0

Bước 4: Tạo hệ thống tệp XFS trên Logical Volume đã tạo trước đó

$ 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

Bước 5: Tạo một thư mục gắn kết và gắn kết phân vùng vào thư mục đó

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

Bước 7: Xem việc gắn kết phân vùng thành công hay chưa

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

Bước 8: Thiết lặp vị trí lưu trữ dữ liệu MongoDB

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

Bước 5: Khởi động và kích hoạt dịch vụ MongoDB

Cuối cùng, hãy khởi động và bật dịch vụ MongoDB để nó tự động khởi động cùng hệ thống.

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

Chạy lệnh bên dưới để kiểm tra trạng thái:

$ systemctl status mongod.service
● mongod.service - MongoDB Database Server
Loaded: loaded (/usr/lib/systemd/system/mongod.service; enabled; preset: disabled)
Active: active (running) since Wed 2023-01-25 13:24:21 UTC; 1s ago
Docs: https://docs.mongodb.org/manual
Process: 2509 ExecStartPre=/usr/bin/mkdir -p /var/run/mongodb (code=exited, status=0/SUCCESS)
Process: 2510 ExecStartPre=/usr/bin/chown mongod:mongod /var/run/mongodb (code=exited, status=0/SUCCESS)
Process: 2511 ExecStartPre=/usr/bin/chmod 0755 /var/run/mongodb (code=exited, status=0/SUCCESS)
Process: 2512 ExecStart=/usr/bin/mongod $OPTIONS (code=exited, status=0/SUCCESS)
Main PID: 2514 (mongod)
Memory: 57.8M
CPU: 862ms
CGroup: /system.slice/mongod.service
└─2514 /usr/bin/mongod -f /etc/mongod.conf

Jan 25 13:24:20 fedora.mylab.io systemd[1]: Starting mongod.service - MongoDB Database Server...
Jan 25 13:24:21 fedora.mylab.io mongod[2512]: about to fork child process, waiting until server is ready for connections.
Jan 25 13:24:21 fedora.mylab.io mongod[2514]: forked process: 2514
Jan 25 13:24:21 fedora.mylab.io mongod[2512]: child process started successfully, parent exiting
Jan 25 13:24:21 fedora.mylab.io systemd[1]: Started mongod.service - MongoDB Database Server.

Mọi người cũng tìm kiếm: mongodb daemon, fedora 36, cách cài mongodb, mongodb fedora, install mongodb fedora, fedora install mongodb, fedora mongodb