- 官網地址https://www.mongodb.com/
- 下載下傳位址https://www.mongodb.com/try/download/enterprise 這裡我們下載下傳Windows版本的4.4.3版本,壓縮包位址為:https://downloads.mongodb.com/windows/mongodb-windows-x86_64-enterprise-4.4.3.zip 具體如下圖所示:
Windows平台下安裝MongoDB(叢集) Windows平台下安裝MongoDB(叢集) -
安裝資料庫
由于我們安裝的是MongoDB叢集,是以這裡我們以安裝3套MongoDB在同一台機子上為例子進行講解。
在講解之前,我們首先需要了解MongoDB叢集的幾個概念:主節點、副節點和仲裁節點:
其中的主節點和副節點是用來存儲資料的,預設情況下主節點提供所有的增删改查服務,但是也可以設定通過副節點來提供查詢服務,這樣就可以減少對主節點服務的一些壓力,當用戶端請求查詢服務時,自動轉到副節點進行查詢;
其中的仲裁節點是不提供資料存儲服務的,它是一個特殊的節點,該節點扮演者一個重要的角色,其作用就是:當主節點挂掉後,能迅速決定将哪一個副節點提升為主節點進行使用。在下面的講解中DB1(主節點)、DB2(備用節點)和DB3(仲裁節點)雖然隻有一個副節點,但還是要有一個仲裁節點的存在。
3.1、我們在D:\Net_Program\Net_MongoDB下建立DB1(主節點)、DB2(副節點)和DB3(仲裁節點)檔案夾分别用來安裝MongoDB資料庫,如下圖所示:
3.2、我們将下載下傳下來的壓縮包mongodb-windows-x86_64-4.4.3.zip解壓到DB1(主節點)檔案夾内,如下圖所示:Windows平台下安裝MongoDB(叢集) Windows平台下安裝MongoDB(叢集) 3.3、在DB1(主節點)檔案夾内建立data和log檔案夾,data的作用是存儲資料、log的作用是存儲資料的相關日志,如下圖所示:Windows平台下安裝MongoDB(叢集) Windows平台下安裝MongoDB(叢集) -
安裝配置
在DB1(主節點)檔案夾内建立config.cfg配置檔案(檔案的字尾名不限制),配置檔案的具體内容如下所示(DB1(主節點)中配置MongoDB的端口号為1666,根據自己的實際情況修改即可,更多配置參見官網:https://docs.mongodb.com/manual/reference/configuration-options/):
Windows平台下安裝MongoDB(叢集) -
安裝服務
以管理者身份運作CMD并定位到DB1(主節點)的bin目錄内,然後運作如下字元将MongoDB的服務安裝到Windows服務中:
- 此時我們在Windows服務清單中就可以看到多了一個名叫“MongoDB4.4.3-1”的服務了:
Windows平台下安裝MongoDB(叢集) - 配置叢集 6.1、任意連接配接上一台MongoDB,比如這裡我們使用DB1(主節點),以管理者身份運作CMD并定位到bin檔案夾,然後輸入如下指令:
- 6.2、然後輸入如下指令初始化叢集(指令中的RsQuberPC為配置檔案config.cfg中的叢集名稱):
Windows平台下安裝MongoDB(叢集) - 6.3、然後輸入如下指令添加仲裁:
Windows平台下安裝MongoDB(叢集) - 6.4、輸入如下指令檢視叢集狀态:
Windows平台下安裝MongoDB(叢集) -
Windows平台下安裝MongoDB(叢集) Windows平台下安裝MongoDB(叢集) Windows平台下安裝MongoDB(叢集) -
測試
7.1、測試前,我們先将服務MongoDB4.4.3-1啟動起來
7.2、連接配接到1666端口的資料庫服務,以管理者身份運作CMD并定位到DB1(主節點)的bin目錄下,然後輸入如下字元回車即可:
- 7.3、輸入如下指令分别來測試“檢視資料庫”、“使用(切換、指定)資料庫”和“檢視指定資料庫下的集合”:
Windows平台下安裝MongoDB(叢集) -
安裝完成
至此,MongoDB的安裝就完成了,至于DB2(副節點)和DB3(仲裁節點)的安裝,和DB1(主節點)的安裝配置基本一緻的,最大的差別在于需要将DB2和DB3的配置端口号和存儲的目錄進行修改,如DB2的配置端口為1667、DB3的配置端口為1668,按照安裝配置DB1的思路我們就可以将DB2、DB3或者更多的服務進行安裝和配置,如下圖所示:
# mongod.conf # for documentation of all options, see: # http://docs.mongodb.org/manual/reference/configuration-options/ # Where and how to store data. storage: dbPath: D:\Net_Program\Net_MongoDB\DB2\data #資料庫資料的存放位置 directoryPerDB: true #是否分别為每個資料庫建立相應的檔案夾 journal: #是否打開journal enabled: true # engine: # mmapv1: # wiredTiger: # where to write logging data. systemLog: #系統日志項 destination: file logAppend: true #是否開啟日志追加模式 path: D:\Net_Program\Net_MongoDB\DB2\log\mongod.log #資料庫日志的存放位置 # network interfaces net: #網絡相關 port: 1667 #指定端口,預設端口為27017(不建議使用預設端口) bindIp: 192.168.2.200 # 叢集名稱 replication: replSetName: RsQuberPC #叢集名稱 #processManagement: #security: #authorization: enabled #operationProfiling: #replication: #sharding: ## Enterprise-Only Options: #auditLog: #snmp:
# mongod.conf # for documentation of all options, see: # http://docs.mongodb.org/manual/reference/configuration-options/ # Where and how to store data. storage: dbPath: D:\Net_Program\Net_MongoDB\DB3\data #資料庫資料的存放位置 directoryPerDB: true #是否分别為每個資料庫建立相應的檔案夾 journal: #是否打開journal enabled: true # engine: # mmapv1: # wiredTiger: # where to write logging data. systemLog: #系統日志項 destination: file logAppend: true #是否開啟日志追加模式 path: D:\Net_Program\Net_MongoDB\DB3\log\mongod.log #資料庫日志的存放位置 # network interfaces net: #網絡相關 port: 1668 #指定端口,預設端口為27017(不建議使用預設端口) bindIp: 192.168.2.200 # 叢集名稱 replication: replSetName: RsQuberPC #叢集名稱 #processManagement: #security: #authorization: enabled #operationProfiling: #replication: #sharding: ## Enterprise-Only Options: #auditLog: #snmp:
# mongod.conf
# for documentation of all options, see:
# http://docs.mongodb.org/manual/reference/configuration-options/
# Where and how to store data.
storage:
dbPath: D:\Net_Program\Net_MongoDB\DB1\data #資料庫資料的存放位置
directoryPerDB: true #是否分别為每個資料庫建立相應的檔案夾
journal: #是否打開journal
enabled: true
# engine:
# mmapv1:
# wiredTiger:
# where to write logging data.
systemLog: #系統日志項
destination: file
logAppend: true #是否開啟日志追加模式
path: D:\Net_Program\Net_MongoDB\DB1\log\mongod.log #資料庫日志的存放位置
# network interfaces
net: #網絡相關
port: 1666 #指定端口,預設端口為27017(不建議使用預設端口)
bindIp: 192.168.2.200
# 叢集名稱
replication:
replSetName: RsQuberPC #叢集名稱
#processManagement:
#security:
#authorization: enabled
#operationProfiling:
#replication:
#sharding:
## Enterprise-Only Options:
#auditLog:
#snmp:
mongod -f "D:\Net_Program\Net_MongoDB\DB1\config.cfg" --serviceName "MongoDB4.4.3-1" --serviceDisplayName "MongoDB4.4.3-1" --install
mongo --host 192.168.2.200 --port 1666
use admin
rs.initiate({_id:"RsQuberPC",members:[{_id:0,host:"192.168.2.200:1666"},{_id:1,host:"192.168.2.200:1667"}]})
rs.addArb("192.168.2.200:1668")
rs.status()
mongo -port 1666
show dbs #檢視資料庫
use admin #使用(切換、指定)資料庫
show collections #檢視指定資料庫下的集合