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

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

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

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

如何在 CentOS 8 上安裝 MongoDB

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

MongoDB 在 CentOS8 存儲庫中默認不可用。因此,首先您需要創建一個新文件並將 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 連接到 MongoShell

然後運行以下命令以查看您的系統上安裝了哪個版本。

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。 去掉#號[セキュリティ]取消註釋該部分並在下一行[承認:有効化]添加。 “授權:啟用”行必須縮進兩個空格。編輯後,配置文件應如下所示:

在 MongoDB 中啟用身份驗證在 MongoDB 服務器上啟用身份驗證

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

systemctl restart mongod 

您可以再次使用上述命令檢查 MongoDB 服務的狀態,並確保服務已成功重啟。

如何創建 MongoDB 管理員用戶

接下來,創建一個具有所有管理員權限的 MongoDB 用戶管理員。創建一個新的 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。