在 Azure 上建立 MongoDB 資料庫,並進行連線

本文最後更新於:2025-03-02

在軟體開發時,我們會搭配資料庫來儲存資料。以前的傳統做法是下載安裝程式,在電腦上安裝。後來也可選擇利用 Docker,下載 image 並運行 container。

但這兩個方法,都必須準備一台電腦作為伺服器。若能放上雲端服務,便能減少伺服器的管理工作。

本文介紹如何在 Azure 上建立 MongoDB 資料庫,並分別在 NoSQLBooster 這款 GUI 工具,以及 Spring Boot 後端程式來連線。


一、建立資料庫

Azure 推出的「Cosmos DB」是一種資料庫服務,它提供了 MongoDB 的 API,讓我們可以用原本操作 MongoDB 的方式來存取。

首先在 Azure 上搜尋「Azure Cosmos DB for MongoDB (vCore)」。進入頁面後,點擊建立。

以下是筆者選擇的設定,並提供 MongoDB 的帳號與密碼。其餘則使用預設值,讀者可視自己的情況調整。

  • 叢集名稱:vincentdemomongodb
  • 免費層級:打勾,免費使用基本功能
  • 位置:South India(目前只有這個能選)
  • MongoDB 版本:7.0
  • 管理使用者名稱:vincent

接著切換到「網路」頁籤,設定防火牆規則。設定的目的,是開放哪些 IP 可以連線到這台資料庫。

本文為了測試用途,只簡單地選擇「Add 0.0.0.0 - 255.255.255.255」,代表網路上的所有 IP 都可以連進來。此時 Azure 會跳出安全性的警告,我們點擊繼續即可。

最後並按下「檢閱 + 建立」。確認設定後,再按下「建立」,等待 Azure 部署完成。

二、基本管理

(一)查看資訊

前往資源畫面,在「概觀」能看見基本資訊,包含叢集名稱、管理員名稱等。

(二)可存取的 IP

在「設定」→「網路」的畫面,可找到建立資料庫時所設定的防火牆規則。若日後想更改,可在此進行設定。

(三)備份與還原

我們可下載 Mongo DB 的資料庫工具(database tools),在 command line 環境使用指令,進行備份與還原。

備份時,需使用「mongodump」指令:

mongodump --uri="mongodb+srv://<username>:<password>@vincentdemomongodb.mongocluster.cosmos.azure.com/<database>?tls=true&authMechanism=SCRAM-SHA-256" --out="<path>"

請在 URI 提供連線字串。

  • username:管理使用者名稱,如本文的「vincent」
  • password:密碼
  • database:要備份的資料庫名稱,如 MongoDB 會內建一個資料庫叫「test」

而「out」參數可提供備份檔的儲存位置,如「.\backup」。

還原時,需使用「mongorestore」指令:

mongorestore --uri="mongodb+srv://<username>:<password>@vincentdemomongodb.mongocluster.cosmos.azure.com/<database>?tls=true&authMechanism=SCRAM-SHA-256" "<path>"

同樣需在 URI 提供連線字串,其中包含要還原到的資料庫。

而最後一個參數為備份檔的來源路徑。延續本文範例,此處的值將會是「.\backup\test」。

三、在 NoSQLBooster 連線

本節讓我們使用 NoSQLBooster 這款 GUI 工具,連線到 Azure 上建立好的 Mongo DB 資料庫。

在「設定」→「連接字串」的畫面,可找到應用程式要連結到 MongoDB 的連接字串,它是由叢集名稱和 Azure 的網域所組成。請讀者先複製起來。

在 NoSQLBooster 建立新連線的視窗中,請點擊「From URI」,並貼上剛剛的連線字串,別忘了將「<password>」字眼替換成自己的密碼。

接著可點擊「Test Connection」,進行測試。最後為連線取名,建立完成後,便能連上。

裡面預設會有一個叫做「test」的資料庫。

四、在 Spring Boot 連線

本節讓我們在 Spring Boot 後端程式中,針對 Azure 上的 MongoDB 進行配置。

首先在 pom.xml 檔案中,添加 Spring Data MongoDB 的依賴。

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>

接著在 application.properties 檔案中,提供連線字串。它是從 Azure 上的「設定」→「連接字串」畫面所取得。別忘了將「<password>」的字替換成自己的密碼。

spring.data.mongodb.uri=mongodb+srv://vincent:<password>@vincentdemomongodb.mongocluster.cosmos.azure.com/?tls=true&authMechanism=SCRAM-SHA-256&retrywrites=false&maxIdleTimeMS=120000

spring.data.mongodb.database=test

完成後,啟動 Spring Boot 程式。若 console 沒有出現錯誤訊息,代表成功連線。


張貼留言: