MongoDB的部署 && 主從搭建
阿新 • • 發佈:2020-08-04
MongoDB的搭建
環境準備:
1.MongoDB版本4.0
https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-4.0.4.tgz
2.作業系統:centos7
3.主從部署:
主:192.168.177.139
從:192.168.177.140
開始前把防火牆關閉
主:
[root@192 ~]# cd /usr/local/src/
[root@192 src]# ll
總用量 69764
-rw-r--r--. 1 root root 71435492 8月 4 20:25 mongodb-linux-x86_64-4.0.4.tgz
[root@192 src]# tar zxf mongodb-linux-x86_64-4.0.4.tgz
[root@192 src]# mv mongodb-linux-x86_64-4.0.4/* /usr/local/mongodb/
[root@192 src]# vim /etc/profile #末尾追加
PATH=/usr/local/mongodb/bin:$PATH
export PATH
[root@192 src]# source /etc/profile #儲存檔案並且生效
[root@localhost src]# mkdir -p /data/db #建立資料庫儲存目錄
啟動MongoDB方法:
一: [root@192 src]# mongod 二: [root@192 src]# mongod --dbpath /data/db #--dbpath 指定資料儲存目錄
登入MongoDB的資料庫:
[root@192 ~]# mongo 檢視資料庫: > show dbs admin 0.000GB config 0.000GB local 0.000GB
> show databases; admin 0.000GB config 0.000GB local 0.000GB 切換到指定的資料庫,這並不是真正的建立,而是隻有當資料插入進去的時候才會真正建立 > use test switched to db test 建立資料表 > db.createCollection("t1") { "ok" : 1 }
檢視資料表 > show tables; t1 > show collections t1 資料表中插入資料> db.t1.insert({"name":"wendi","age":"21"}) WriteResult({ "nInserted" : 1 }) 檢視資料 > db.t1.find() { "_id" : ObjectId("5f2959d75cc3d19eae9d77db"), "name" : "wendi", "age" : "21" }
從節點重複以上步驟
主從配置,一定要做時間同步哦
[root@192 mongodb]# ntpdate pool.ntp.org 4 Aug 21:01:37 ntpdate[12316]: adjust time server 108.59.2.24 offset -0.384332 sec [root@192 mongodb]# date 2020年 08月 04日 星期二 21:01:42 CST
Mongos主服務其上搭建配置
[root@192 ~]# cd /usr/local/mongodb/ [root@192 mongodb]# touch mongodb.conf [root@192 mongodb]# vim mongodb.conf
建立日誌存放目錄 [root@192 mongodb]# mkdir /usr/local/mongodb/logs/
建立資料存放目錄 [root@192 mongodb]# mkdir /usr/local/mongodb/data [root@192 mongodb]# cat mongodb.conf logpath=/usr/local/mongodb/logs/mongod.log #日誌路徑 logappend=true #是否做日誌追加 fork=true #後臺啟動 port=27017 #埠 dbpath=/usr/local/mongodb/data #資料目錄 pidfilepath=/usr/local/mongodb/mongod.pid #pid檔案 oplogSize=4096 #oplog的大小 maxConns=640000 #最大同時連線數 directoryperdb=true #設定每個資料庫將被儲存在一個單獨的目錄 bind_ip=0.0.0.0 #監聽埠 replSet=rs0
[root@192 mongodb]# mongod -f mongodb.conf #開啟服務配置
從也做一樣的步驟
主上登入MongoDB的客戶端:
[root@192 ~]# mongo
> rs.status() { "operationTime" : Timestamp(0, 0), "ok" : 0, "errmsg" : "no replset config has been received", "code" : 94, "codeName" : "NotYetInitialized", "$clusterTime" : { "clusterTime" : Timestamp(0, 0), "signature" : { "hash" : BinData(0,"AAAAAAAAAAAAAAAAAAAAAAAAAAA="), "keyId" : NumberLong(0) } } }
#定義主從節點和副本集資訊
> var cfg={_id:'rs0',members:[{_id:0,host:'192.168.177.139:27017'},{_id:1,host:'192.168.177.140:27017'}]} > rs.initiate(cfg) { "ok" : 1, "operationTime" : Timestamp(1596547821, 1), "$clusterTime" : { "clusterTime" : Timestamp(1596547821, 1), "signature" : { "hash" : BinData(0,"AAAAAAAAAAAAAAAAAAAAAAAAAAA="), "keyId" : NumberLong(0) } } }
主從校驗檢測:
從上面一般會沒有許可權讀寫,所以要進行修改:db.getMongo().setSlaveOk()
主:
從: