文章目錄
如何在 Windows 環境安裝及設定 MongoDB
最近專案因為資料變異幅度較大,如果使用傳統關聯式資料庫來儲存資料,table schema 很難設計,所以打算利用 MongoDB schema-free 的特性來儲存資料
原本在開發環境中架設 MongoDB 時 並沒有遇到太多障礙,加上專案時程較趕,就沒有刻意留下筆記,結果在架設其他測試環境時卻卡了好久,反而是當時花不少時間查資料才搞定的 RabbitMQ 憑著詳細筆記快速搞定,所以立馬就來補筆記了 XD
安裝 MongoDB
MongoDB 有 Windows
、Linux
、OS X
和 Solaris
四個版本,可以滿足不同環境的需求,安裝檔可以以參考 下載位置,今天內容是針對 Windows OS 的安裝及設定
版本 (2017/08/22)
- Windows Server 2008 R2 64-bit and later, with SSL support x64
- Windows Server 2008 R2 64-bit and later, without SSL support x64
- Windows Server 2008 64-bit, without SSL support x64
直接點擊
.msi
檔執行安裝原則一直按
Next
就可以完成安裝,如果需要自訂安裝位置,需要使用Custom
,預設安裝至C:\Program Files\MongoDB\Server\3.4\
設定並啟動 MongoDB
MongoDB 安裝完成後,僅具備 MongoDB 的核心功能,需要設定 MongoDB 執行環境參數並啟動 MongoDB instance 才能真正讓 MongoDB 擁有實際功能,設定方式有多種,可以依情境所需挑選
直接啟動 MongoDB instance
純 command line 指令設定
必要的參數只有
dbpath
- 用來存放資料的位置,其他參數皆是可選擇參數指定 db 存放位置
"C:\Program Files\MongoDB\Server\3.4\bin\mongod.exe" --dbpath "C:\mongodb\db1"
指定 db 存放位置、 log存放位置、 port 、對外連線 ip、db 儲存模式
"C:\Program Files\MongoDB\Server\3.4\bin\mongod.exe" --dbpath "C:\mongodb\db1" --logpath "C:\mongodb\db1\log.log" --port 30000 --bind_ip 127.0.0.1 --directoryperdb
mongod
指令參數可以參考 mongod.exe使用設定檔
雖然必要參數只有一個,但要完整正確的指定所有參數也不是件容易的事。此時可以透過將參數設定檔來啟動 MongoDB
格式
MongoDB 2.6 開始使用 YAML,並支援舊版格式;MongoDB 2.4 之前則沒有特定格式,只要符合
{參數}={設定值}
即可MongoDB 2.4 之前版本,詳細內容可以參考 Configuration File Options
port=27017 dbpath=c:\mongodb\db3 directoryperdb=true logpath=c:\mongodb\db3\log.log logappend=true bind_ip=127.0.0.1
MongoDB 2.6 YAML 版本,詳細內容可以參考 Configuration File Options
systemLog: destination: file path: "C:\\mongodb\\db3\\log.log" logAppend: true storage: dbPath: "C:\\mongodb\\db3" directoryPerDB: true net: port: 27017 bindIp: 127.0.0.1
指令
"C:\Program Files\MongoDB\Server\3.4\bin\mongod.exe" --config "C:\mongodb\db3\mongo.conf"
Windows Service
透過直接建立 MongoDB instance 的方式,會讓執行指令的 command prompt 一直處於執行中的狀態,一旦關閉, MongoDB instance 也會被關閉,不適合長久型服務,而透過安裝成 Windows Service 就沒有這個問題了
純 command line 指令設定
"C:\Program Files\MongoDB\Server\3.4\bin\mongod.exe" --dbpath "C:\mongodb\db1" --logpath "C:\mongodb\db1\log.log" --port 30000 --bind_ip 127.0.0.1 --directoryperdb --serviceName MongoDB --serviceDisplayName MongoDB30000 --install
加上
serviceName
、serviceDisplayName
、及install
mongod 指令搭配設定檔
MongoDB 2.4 之前版本
port=27017 dbpath=c:\mongodb\db3 directoryperdb=true logpath=c:\mongodb\db3\log.log logappend=true bind_ip=127.0.0.1
這個版本無法直接透過 config 檔案指定 service 相關設定,需與指令搭配使用
C:\Program Files\MongoDB\Server\3.4\bin\mongod.exe" --config "C:\mongodb\db3\mongo.conf" --serviceName MongoDB27017 --serviceDisplayName MongoDB27017 --install
MongoDB 2.6 YAML 版本
systemLog: destination: file path: "C:\\mongodb\\db3\\log.log" logAppend: true storage: dbPath: "C:\\mongodb\\db3" directoryPerDB: true net: port: 27017 bindIp: 127.0.0.1 processManagement: windowsService: serviceName: MongoDB27017 displayName: MongoDB27017
"C:\Program Files\MongoDB\Server\3.4\bin\mongod.exe" --config "C:\mongodb\db3\mongo.conf" --install
serviceName
、displayName
由設定檔指定
使用 sc 指令
sc.exe create MongoDB binPath= "\"C:\Program Files\MongoDB\Server\3.4\bin\mongod.exe\" --service --config=\"C:\mongodb\db3\mongo.conf\"" DisplayName= "MongoDB" start= "auto"
啟動
net start MongoDB
停止
net stop MongoDB
刪除
sc.exe delete MongoDB
心得
仔細想想好像每種安裝方式之前都用過,當然不是為了測試,主要是因為不暸解、不熟悉而沒有固定的套路才會這樣
經過這次忘記安裝步驟的慘痛經驗,再次提醒著我應該要勤作筆記,不為別的就為了拯救記憶力退化的自己
回到 MongoDB 本身,設定方式滿多元的,安裝流程跟設定都算簡單(也就是這樣才覺得不用筆記),設定的相容性也做得不錯,果然不愧是牌子老口碑好
參考資訊
- MongoDB 下載位置
- mongod.exe
- [MongoDB 2.4 Configuration File Options
- MongoDB 2.6 Configuration File Options
- Install MongoDB Community Edition on Windows
文章作者 Yowko Tsai
上次更新 2021-10-08
授權合約
本部落格 (Yowko's Notes) 所有的文章內容(包含圖片),任何轉載行為,必須通知並獲本部落格作者 (Yowko Tsai) 的同意始得轉載,且轉載皆須註明出處與作者。
Yowko's Notes 由 Yowko Tsai 製作,以創用CC 姓名標示-非商業性-相同方式分享 3.0 台灣 授權條款 釋出。