在CentOS上配置MongoDB的副本集認證需要遵循以下步驟:
首先,確保你已經在CentOS上安裝了MongoDB。如果還沒有安裝,可以參考MongoDB官方文檔進行安裝。
編輯MongoDB配置文件(通常是/etc/mongod.conf
),添加或修改以下內容:
security:
authorization: enabled
啟動MongoDB服務并創建一個管理員用戶:
sudo systemctl start mongod
mongo -u admin -p your_password --authenticationDatabase admin
在Mongo shell中執行以下命令創建管理員用戶:
use admin
db.createUser({
user: "admin",
pwd: "your_password",
roles: ["root"]
})
假設你有三個MongoDB實例,分別運行在不同的主機上,配置文件中需要指定副本集名稱和成員信息。例如:
replication:
replSetName: "rs0"
net:
port: 27017
連接到其中一個MongoDB實例并初始化副本集:
mongo -u admin -p your_password --authenticationDatabase admin
在Mongo shell中執行以下命令:
rs.initiate({
_id: "rs0",
members: [
{ _id: 0, host: "host1:27017", priority: 2 },
{ _id: 1, host: "host2:27017", priority: 1 },
{ _id: 2, host: "host3:27017", priority: 1 }
]
})
為每個副本集成員創建用戶,并分配適當的角色。例如,為host1
上的MongoDB實例創建一個用戶:
use your_database
db.createUser({
user: "replicaUser",
pwd: "replica_password",
roles: ["readWrite", "dbOwner"]
})
重復上述步驟,為其他副本集成員創建用戶。
在Mongo shell中驗證副本集配置:
rs.status()
你應該能看到所有副本集成員的狀態,并且它們應該已經成功加入副本集。
在應用程序中使用MongoDB連接字符串時,確保包含用戶名和密碼。例如:
from pymongo import MongoClient
client = MongoClient(
"mongodb://admin:your_password@host1:27017,host2:27017,host3:27017/?replicaSet=rs0&authSource=admin"
)
通過以上步驟,你可以在CentOS上配置MongoDB的副本集認證。確保所有副本集成員都配置了正確的用戶和權限,以保證數據的安全性和一致性。