mongod副本集的安裝配置
1、在176 機器上解壓mongodb-linux-x86_64-rhel62-3.4.9.tgz
[root@iZbp1aygu9fiwba38yn9u6Z local]#tar xzvf mongodb-linux-x86_64-rhel62-3.4.9.tgz
2、解壓完成之後,改名為mongodb27017,並復制一份,名稱為mongodb27018。另外一臺機器177的操作一樣。
[root@iZbp1aygu9fiwba38yn9u6Z local]#mv mongodb-linux-x86_64-rhel62-3.4.9 mongodb27017
3、修改配置文件,配置文件信息如下圖:
因為是測試安裝,一機2個mongodb,註意日誌文件路徑、數據存放路徑、pid存放路徑【上圖未用紅框標註】、端口號要保持不同。集群名稱和生成的mongodb.key文件內容和權限要保持一致,mongdb.key的路徑要不一樣,比如mongdb27018這個文件的路徑就是/usr/local/mongodb27018/mongodb.key。
4、所有集群內的mongodb都配置完成之後,啟動每一個mongodb應用。
[root@iZbp1aygu9fiwba38yn9u6Z local]# mongodb27017/bin/mongod -f mongodb27017/mongodb.conf
5、登錄其中一個mongodb
[root@iZbp1aygu9fiwba38yn9u6Z local]#mongodb27017/bin/mongo 172.16.178.176:27017
6、登入之後,配置集群信息
7、初始化集群信息
8、使用admin 數據庫,創建一個用戶
9、給這個用戶賦予相應的其他權限
[root@iZbp1aygu9fiwba38yn9u6Z local]# mongodb27017/bin/mongo 172.16.178.176:27017
MongoDB shell version v3.4.9
connecting to: 172.16.178.176:27017
rs1:PRIMARY> use admin
switched to db admin
rs1:PRIMARY>db.grantRolesToUser( "root" , [ { role: "dbOwner", db: "admin" },{ "role": "clusterAdmin", "db": "admin" },
{ "role": "userAdminAnyDatabase", "db": "admin" },
{ "role": "dbAdminAnyDatabase", "db": "admin" },
{ role: "root", db: "admin" } ]);
10、先停掉所有從機和裁決的mongodb,再停掉主mongodb。停的時候可以在控制臺使用db.shutdownServer()或者kill -15 pid【pid,每一個mongodb的進程號】,絕對不要使用kill -9 pid.
11、修改配置文件,取消認證配置的註釋,使認證方式生效。從機如果不需要認證,可以保持auth 這項為註釋,取消註釋的內容如下。
security:
keyFile: "/usr/local/mongodb27017/mongodb.key"
clusterAuthMode: "keyFile"
authorization: "enabled"
12、生成一個mongodb.key並賦予600權限
[root@iZbp1aygu9fiwba38yn9u6Z mongodb27017]#openssl rand -base64 666 > /usr/local/mongodb27017/mongodb.key
[root@iZbp1aygu9fiwba38yn9u6Z mongodb27017]#chmod 600 mongodb.key
13、分別傳到其他三個mongodb.
[root@iZbp1aygu9fiwba38yn9u6Z mongodb27017]#cp mongodb.key /usr/local/mongodb27018/
[root@iZbp1aygu9fiwba38yn9u6Z mongodb27017]#scp mongodb.key [email protected]:/usr/local/mongodb27017/
14、先啟動主mongodb27017,再啟動其他的mongodb。
15、登錄查看,直接查看rs.status(),提示沒有驗證。
16、切換到admin數據庫,使用db.auth()驗證,再行查看,如下圖:
17、創建一個test數據庫,直接use test.
18、給test數據庫插入一條數據
db.test.insert({"name":"hello"})
19、查詢test數據
20、給test創建一個可讀寫的用戶
rs1:PRIMARY>db.createUser({user: "xxxx", pwd: "xxxxxxx", roles: [{ role: "readWrite", db: "test" }]})
mongodb這個集群基礎設置大致就這樣。
mongod副本集的安裝配置