1.mongoDB安裝
https://docs.mongodb.com/manual/tutorial/install-mongodb-on-red-hat/
服務器 | IP | 端口 |
---|---|---|
server1 | 192.168.3.131 | 27017 |
server2 | 192.168.3.132 | 27017 |
server3 | 192.168.3.133 | 27017 |
2.mongoDB配置
在每一臺服務器上配置/etc/mongod.conf
net:
port: 27017
bindIp: 0.0.0.0 # Enter 0.0.0.0,:: to bind to all IPv4 and IPv6 addresses or, alternatively, use the net.bindIpAll setting.
replication:
replSetName: myRepl
3.設置mongo複製集
3.1 登錄任意一臺mongo:
mongo
3.2 準備腳本:
rs.initiate({_id:'myRepl',members:[{_id:0,host:'192.168.3.131:27017'},{_id:1,host:'192.168.3.132:27017'},{_id:2,host:'192.168.3.133:27017'}]})
3.3 運行以上命令後如果正確,通過rs.status()命令可以查看到集羣狀態。
4.給集羣設置密碼
在Primary節點上操作
mongo
use admin
db.createUser({user:"admin", pwd:"admin", roles:[{role: "userAdminAnyDatabase", db:"admin" }]})
5.創建keyfile,三臺機器上要相同
openssl rand -base64 90 -out ./keyfile
通過scp命令拷貝到各個服務器
scp keyfile [email protected]:/etc/
scp keyfile [email protected]:/etc/
記得配置權限
chmod 600 keyfile
6.修改配置文件,添加auth和keyfile
security:
authorization: enabled
keyFile: keyfile
7.啓動副本集
mongod -f /etc/mongod.conf
可以給用戶賦予所有權限
mongo
use admin
db.auth("admin","admin")
db.grantRolesToUser( "admin" , [ { role: "dbOwner", db: "admin" },{ "role": "clusterAdmin", "db": "admin" },
{ "role": "userAdminAnyDatabase", "db": "admin" },
{ "role": "dbAdminAnyDatabase", "db": "admin" },
{ role: "root", db: "admin" } ]
Read:允許用戶讀取指定數據庫
readWrite:允許用戶讀寫指定數據庫
dbAdmin:允許用戶在指定數據庫中執行管理函數,如索引創建、刪除,查看統計或訪問system.profile
userAdmin:允許用戶向system.users集合寫入,可以找指定數據庫裏創建、刪除和管理用戶
clusterAdmin:只在admin數據庫中可用,賦予用戶所有分片和複製集相關函數的管理權限。
readAnyDatabase:只在admin數據庫中可用,賦予用戶所有數據庫的讀權限
readWriteAnyDatabase:只在admin數據庫中可用,賦予用戶所有數據庫的讀寫權限
userAdminAnyDatabase:只在admin數據庫中可用,賦予用戶所有數據庫的userAdmin權限
dbAdminAnyDatabase:只在admin數據庫中可用,賦予用戶所有數據庫的dbAdmin權限。
root:只在admin數據庫中可用。超級賬號,超級權限
8.spring配置
spring.data.mongodb.uri=mongodb://user:pwd@ip1:port1,ip2:port2,,ip3:port3/database
參考文檔,感謝:
https://www.imooc.com/article/43509
http://www.cnblogs.com/Joans/p/7724144.html