MongoDB的部署 && 主從搭建


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]# mkdir /usr/local/mongodb
[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() 

主:

 

 從:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM