目錄
MongoDB 是最受歡迎的開源 NoSQL 資料庫管理系統之一,存儲資料以文件格式而非表格格式。由於它的彈性模式,MongoDB 提供了比 SQL 更高的可擴展性和靈活性。對於開發人員來說,這個資料庫管理系統(DBMS)因其出色的性能和與各種編程語言的兼容性而廣受青睞。
然而,對於 Ubuntu 用戶來說,在虛擬私有伺服器(VPS)主機上安裝 MongoDB 可能會稍顯挑戰,因為需要使用各種命令。在這篇文章中,我們將解釋如何在 Ubuntu 上安裝 MongoDB,以及相關的步驟,包括創建新數據庫、設置用戶和啟用遠程驗證。這些指南將幫助您順利安裝 MongoDB,並開始在您的系統中使用它。
什麼是 MongoDB ?
MongoDB 是一個極受歡迎的開源 NoSQL 資料庫管理系統,被廣泛應用於大型應用程式或網站。
與 SQL 不同,MongoDB 將數據存儲在具有彈性模式的 BSON 文件中,這導致了更高的可擴展性。它還支持各種操作系統、編程語言和框架。
在 Ubuntu 上安裝 MongoDB 的先決條件
在安裝官方 MongoDB 套件之前,請檢查您的硬體和軟體兼容性。您的 VPS 主機方案必須支援 Ubuntu,提供 SSH 連接,並提供完整的 root 訪問權限。
TAKI Cloud 的 VPS 主機提供多種 Linux 發行版,包括 Ubuntu。您可以通過前往 VPS 儀表板 → 重裝系統 → 操作系統 輕鬆安裝它。
小編建議使用最新的操作系統以確保兼容性和安全性。然而,安裝 MongoDB 在 Ubuntu 20.04 或其他版本上的步驟是相似的。
TAKI Cloud 的 VPS 主機方案還允許您通過 SSH 進行遠程連接。除了使用 PuTTY 和 Terminal 之類的應用程式外,您還可以使用我們的瀏覽器終端直接從網頁瀏覽器運行 Linux 命令。
TAKI Cloud 的 VPS 還提供完整的 root 訪問權限,允許用戶在沒有權限問題的情況下運行 MongoDB 安裝命令。
如何在 Ubuntu 上安裝 MongoDB
在本節中,我們將解釋如何在 Ubuntu 20.04 或其他版本上安裝 MongoDB。在繼續之前,請確保您已使用 root 或超級用戶帳戶通過 SSH 連接到您的 VPS。
1.安裝 MongoDB
在安裝 MongoDB 套件之前,請在您的命令行界面中執行以下命令下載 GnuPG 和 cURL 實用工具。
sudo apt-get install gnupg curl
使用 cURL 和 GnuPG 將 MongoDB 的公開 GPG 金鑰導入,以檢索安裝套件。
curl -fsSL https://pgp.mongodb.com/server-6.0.asc | sudo gpg -o /etc/apt/trusted.gpg.d//mongodb-server-6.0.gpg --dearmor
請注意,URL 取決於 MongoDB 套件的版本。在本教程中,我們將安裝 MongoDB 社區版 7.0,這是撰寫時的最新穩定版本。
在導入官方 MongoDB 套件之後,為安裝創建一個清單文件。命令根據您的 Ubuntu 版本而有所不同。對於 Ubuntu 22.04 或更新版本,請執行:
echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/6.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-6.0.list
與此同時,在 Ubuntu 20.04 上運行以下命令以配置清單文件:
echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/6.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-6.0.list
刷新 APT 存儲庫以同步本地套件數據庫:
sudo apt update
使用 APT 套件管理系統安裝最新的穩定版本 MongoDB,請運行以下命令:
sudo apt install mongodb-org
如果需要的話,您可以選擇安裝特定版本的官方 mongodb-org 套件。例如,運行以下命令來安裝 MongoDB 版本 7.0.2:
sudo apt-get install -y mongodb-org=6.0 mongodb-org-database=6.0 mongodb-org-server=6.0 mongodb-mongosh=6.0 mongodb-org-mongos=6.0 mongodb-org-tools=6.0
如果您僅指定 MongoDB 版本而不包括其他組件,APT 將安裝最新的套件。
由於 APT 會自動更新組件套件,因此為了保持當前版本,您可以針對安裝進行固定。以下是命令示例:
echo "mongodb-org hold" | sudo dpkg --set-selections
echo "mongodb-org-server hold" | sudo dpkg --set-selections
echo "mongodb-mongosh hold" | sudo dpkg --set-selections
2. 啟動 MongoDB 服務
安裝完成後,請執行以下命令以啟動 MongoDB:
sudo systemctl start mongod
systemctl 命令在 MongoDB 服務管理中至關重要。例如,如果遇到錯誤,可以運行以下命令重新啟動正在運行的服務,並再次嘗試啟動資料庫管理系統(DBMS):
sudo systemctl enable --now mongod
要確認 MongoDB 資料庫伺服器是否正確加載,請使用以下命令檢查其狀態:
sudo systemctl status mongod
此時將輸出與以下大概的內容,可以看到狀態是active(running),表示服務很正常。
mongod.service - High-performance, schema-free document-oriented database
Loaded: loaded (/etc/systemd/system/mongod.service; enabled; vendor preset: enabled)
Active: active (running) since Sun 2021-05-09 20:40:14 CST; 2h 36min ago
Main PID: 2910 (mongod)
CGroup: /system.slice/mongod.service
...
默認情況下,該服務不會在服務器啟動時自動啟動。要在服務器啟動時自動加載它,請使用以下命令啟用 MongoDB:
sudo systemctl enable mongod
使用 systemctl 檢查服務狀態。如果顯示為 Enabled 而不是 Loaded,則表示 MongoDB 已準備就緒。
3.配置MongoDB
更改 MongoDB 數據庫設置的方法是修改主配置文件。該文件在安裝過程中會自動創建,可通過 /etc/mongod.conf 訪問。
使用像 nano 這樣的文本編輯器打開並修改文件。以下是命令:
sudo nano /etc/mongod.conf
有幾個配置選項可以決定 MongoDB 伺服器的行為。例如,systemLog 定義了您的資料庫日誌記錄設置,而 net 則允許您修改與網絡相關的設置。
所有選項都有多個參數。例如,systemLog 選項具有 path 參數,該參數確定了默認日誌存儲位置,即 /var/log/mongodb/mongod.log。但是,您可以根據需要修改這些參數以滿足您的特定需求。
在刪除參數和選項之前,將井號(#)添加到它們之前以禁用它們是一個明智的做法。這樣做可以讓您輕鬆通過刪除該字符來重新啟用它們。
編輯配置文件後,使用以下命令重新啟動 MongoDB 以應用更改:
sudo systemctl restart mongod
4.建立新的資料庫
安裝過程會自動創建 admin 資料庫。由於該資料庫通常用於存儲驗證數據等管理目的,我們建議創建一個新的資料庫。
要這樣做,請運行以下命令進入 Mongo shell:
mongosh
MongoDB 使用相同的命令來創建和訪問資料庫。如果已存在指定名稱的資料庫,則 shell 將切換到該資料庫。
例如,以下命令將切換到默認資料庫,因為該名稱已存在:
use admin
與此同時,在 MongoDB shell 中運行以下命令來創建 customers 資料庫:
use customers
要檢查系統中的所有 MongoDB 資料庫,請運行以下命令:
show dbs
5.創建新使用者
由於 MongoDB 沒有默認帳戶,您必須為每個資料庫創建一個新使用者並設置其權限。您可以使用 db.createUser() 函數來完成此操作。
例如,我們將使用完整權限創建一個新的 root MongoDB 使用者帳戶。在使用 use 命令切換到 admin 模式後,輸入以下命令:
db.createUser(
{
user: "root",
pwd: "AB5aOHHGBBgy5dyd",
roles: [ { role: "root", db: "admin" } ]
}
)
您可以將函數寫成一行或多行。請注意大小寫,因為它在 MongoDB 中是區分大小寫的。
MongoDB 具有各種角色,例如 dbAdmin、dbOwner 和 readWrite。我們建議給予使用者帳戶最低限度的權限,以幫助避免未經授權的修改和數據訪問。
要顯示當前資料庫中的所有使用者,使用以下命令:
show users
為了測試資料庫連接,請在終端中輸入 exit 命令退出 MongoDB 控制台,然後執行以下命令:
mongosh --port [port] -u [username] -p '[password]' '[database]'
舉例,我們將使用預設端口 27017 連接到 root 使用者:
mongosh --port 27017 -u root -p 'AB5aOHHGBBgy5dyd' 'admin'
6.啟用遠程身份驗證
預設情況下,MongoDB 允許來自主機的所有登錄。雖然這對於本地部署足夠,但在從另一台設備推送應用程序時可能會遇到問題。
要從另一個系統訪問 MongoDB,請修改 mongod.conf 文件的 bindIP 參數。它的默認值是本地 IP 地址,這意味著它拒絕除主機服務器以外的其他機器的訪問。
使用 nano 打開 mongod.conf 文件,並將您的 VPS 公共 IP 地址添加到 bindIP 參數中,如下所示:
bindIP: 127.0.0.1,47.242.27.225
我們不建議將值更改為 0.0.0.0,因為允許所有系統的 IP 地址連接會將您的服務器暴露於網絡攻擊之中。
為了確保僅允許授權的使用者訪問您的資料庫,請在 security 部分下添加以下行:
authorization: enabled
確保您已經刪除了 security 選項開頭的井號。按下 Ctrl + X,然後按 Y 和 Enter 保存更改。使用以下命令重新啟動 MongoDB:
sudo systemctl restart mongod
在您的本地系統中安裝了 Mongo 工具後,您應該能夠通過運行以下命令語法來連接到資料庫伺服器:
mongo "mongodb://user:password@ip:port/?authSource=database_name"
舉例,我們將使用 root 使用者連接到 MongoDB,並以 admin 資料庫作為驗證器。以下是命令:
mongo "mongodb://root:AB5aOHHGBBgy5dyd@47.242.27.225:27017/?authSource=admin"
為了提高遠端連線的安全性,將 MongoDB 的監聽端口僅限制在本地系統的 IP 地址上。在 Ubuntu 中,您可以使用簡化防火牆(UFW)命令來實現這一點:
sudo ufw allow from your_local_machine_ip_address to any port 27017
這表示防火牆僅接受來自指定 IP 地址的連接,並封鎖其他連接。
結論
MongoDB 是一款免費、開源的 NoSQL 資料庫管理系統(DBMS),在大型網站或應用程式中很受歡迎。由於它不使用固定的結構來存儲數據,因此比 SQL 更靈活和可擴展。
在本文中,我們提供了 MongoDB 在 Ubuntu 上的安裝指南。以下是總結:
- 安裝 MongoDB – 使用 GnuPG 和 cURL 導入官方 MongoDB 存儲庫密鑰,創建列表文件並使用 APT 軟件包管理器進行安裝。
- 啟動 MongoDB – 使用 systemctl 命令運行 MongoDB 實例,啟用守護進程以確保在系統啟動期間自動啟動。
- 設置 MongoDB – 使用文本編輯器打開 mongod.conf 配置文件,修改您的資料庫設置並重新啟動 Mongod 以應用更改。
- 創建新的資料庫 – 使用 mongosh 命令進入 Mongo shell,運行 use 命令創建新的 MongoDB 資料庫,或者如果指定的名稱已存在,則訪問現有資料庫。
- 創建新使用者 – 訪問 MongoDB shell 並輸入 db.createUser() 函數,在當前資料庫中創建新的使用者,並設置其密碼和權限。
- 啟用遠程身份驗證 – 修改 mongod.conf 文件的 bindIP 設置以啟用對資料庫的遠程訪問。為提高安全性,啟用 MongoDB 認證設置並使用 UFW 限制允許的 IP 地址。
如何在 Ubuntu 上安裝 MongoDB 常見問題解答
確認您的 Ubuntu 系統是否已安裝 MongoDB,只需使用 mongod --version
命令檢查其版本號。如果能夠看到 MongoDB 的版本號,那麼表示資料庫已經正確配置。
另外,您也可以輸入 mongosh
命令,檢查終端是否返回錯誤。
要卸載 MongoDB,首先停止服務,可以運行以下命令:sudo service mongod stop。接著,使用 apt purge “mongodb-org*” 命令來刪除該套件。
然後,使用 rm 命令在 /var/log/mongodb和/var/lib/mongodb 目錄中刪除數據庫和日誌文件。
MongoDB Community Edition 是免費且開源的資料庫管理解決方案的版本。而 MongoDB 是指的是企業進階版本或基於雲端的 Atlas 版本。