MongoDB 是一種常用的面向文檔的 NoSQL 數據庫程序。 NoSQL 一詞不僅僅指 SQL,它是一種設計數據庫的方式。 NoSQL 數據庫經過建模,以便通過文檔存儲和檢索數據,而不是使用傳統關係數據庫中使用的表格結構(表和行)。

MongoDB 是一個通用數據庫,其中數據以鍵值對的形式存儲在靈活的類似 JSON 的文檔中。所有 MongoDB 數據庫都有包含文檔的集合。這些文檔可以有不同的大小、內容和字段數。它支持可選的模式模型,因此您無需提前定義數據庫藍圖。 MongoDB 數據庫具有高度可擴展性。

面向文檔的模型使 MongoDB 非常靈活。它非常擅長負載均衡和數據複製,可以在多台服務器上運行。即使發生硬件故障,這些功能也允許系統繼續運行。以下是 MongoDB 的一些主要功能。

  • 即席查詢
  • 指數
  • 聚合
  • 負荷分配
  • 垂褶系列
  • 複製

如何在 CentOS 8 上安裝 MongoDB

您必須以 root 身份登錄或具有 sudo 權限才能在您的系統上安裝 MongoDB。

MongoDB 在 CentOS 8 存儲庫中默認不可用。首先,我們需要創建一個新文件並將 MongoDB 添加到我們的 CentOS 8 存儲庫。使用以下命令創建一個新文件。

sudo nano /etc/yum.repos.d/mongodb-org-5.0.repo 

將以下文本複制並粘貼到上面創建的文本文件中,以便您可以直接從終端安裝 MongoDB。

[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

保存並關閉文件。

接下來,使用以下命令安裝 MongoDB。

sudo dnf install mongodb-org -y
使用 DNF 安裝 MongoDB

上面的命令將安裝最新的穩定版本的 MongoDB。現在是5.0。 您可以通過訪問 MongoDB 官方網站查看最新版本。如果要安裝特定版本,請將文本文件中的 5.0 替換為所需版本。

要驗證安裝,請運行 MongoDB 數據庫。

mongo
通過 CLI 連接到 Mongo Shell

通過運行以下命令檢查系統上安裝的版本:

db.version() 
Output:
5.0.1

然後使用以下命令退出 shell:

exit 

完成安裝過程後,使用以下命令啟動 MongoDB:

sudo systemctl start mongod

接下來,使用以下命令啟用 MongoDB 服務。

sudo systemctl enable mongod

您可以使用以下命令檢查 MongoDB 服務的狀態。

sudo systemctl status mongod
檢查 MongoDB 服務MongoDB服務狀態

如何啟用 MongoDB 身份驗證

現在您已經在系統上成功安裝了 MongoDB,請對其進行配置以使其更安全。

MongoDB 默認禁用身份驗證。這允許任何用戶修改、創建、刪除或操作數據庫。我們建議啟用身份驗證以限制對 MongoDB 的訪問。 可以通過編輯以下配置文件來啟用 MongoDB 身份驗證:

nano /etc/mongod.conf 

在您喜歡的瀏覽器中打開配置文件後,搜索#security。 通過刪除 # 符號取消註釋 Security 部分並將 Authorization: Enable 添加到以下行。 “授權:啟用”行應該縮進兩個空格。編輯後的配置文件如下所示:

在 MongoDB 中啟用授權在 MongoDB 服務器上啟用授權

保存 如果您使用的是 Nano,請使用 Ctrl+X 退出文件。將更改應用到 MongoDB 並使用以下命令重新啟動服務。

systemctl restart mongod 

可以再次使用上述命令查看MongoDB服務的狀態,確認服務重啟成功。

如何為 MongoDB 創建管理員用戶

接下來,創建一個具有所有管理權限的 MongoDB 用戶 admin。創建一個新的 MongoDB 管理員用戶並首先使用以下命令訪問 MongoDB 服務:

mongo 

運行以下命令以管理員身份使用該服務。

use admin

使用以下命令創建一個新用戶。

db.createUser( { user: "admin1", pwd: "pass", roles: [ { role: "userAdminAnyDatabase", db: "admin" }, "readWriteAnyDatabase" ] } )

您可以替換 admin1 並傳入您的首選用戶名和密碼。

在 MongoDB 中創建管理員用戶在 MongoDB 中創建管理員用戶

使用以下命令退出 shell。

exit

如何檢查 MongoDB 身份驗證

您無法在沒有身份驗證的情況下在 MongoDB shell 中運行命令,因為它被配置為需要身份驗證。

要檢查這一點,請打開 MongoDB 服務並嘗試運行各種命令。

show users
MongoDB認證錯誤未經授權的 MongoDB 錯誤
show dbs

在上面的示例中,由於訪問受限,沒有顯示任何輸出。

您可以使用以下命令以管理用戶身份訪問 MongoDB 服務。

mongo -u admin1 -p --authenticationDatabase admin 

再次使用 show dbs 命令會得到以下輸出:

show dbs
Output:
admin      0.000GB
config     0.000GB
local      0.000GB

結論是

MongoDB 是一個免費的開源 NoSQL 數據庫。開發人員比傳統的基於關係的數據庫具有更大的靈活性。 它將數據存儲在類似 JSON 的文檔中,使客戶端和數據庫之間的數據傳輸快速高效。

在本綜合指南中,您了解瞭如何在 CentOS 8 操作系統上安裝和配置 MongoDB。