在Ubuntu上配置MongoDB的副本集認證需要以下幾個步驟:
首先,確保你已經在Ubuntu上安裝了MongoDB。如果沒有安裝,可以使用以下命令進行安裝:
sudo apt update
sudo apt install -y mongodb
編輯MongoDB的配置文件 /etc/mongod.conf
,為每個實例添加認證相關的配置。
storage:
dbPath: /var/lib/mongodb
journal:
enabled: true
systemLog:
destination: file
logAppend: true
path: /var/log/mongodb/mongod.log
net:
port: 27017
bindIp: 127.0.0.1,你的主節點IP
security:
authorization: enabled
storage:
dbPath: /var/lib/mongodb
journal:
enabled: true
systemLog:
destination: file
logAppend: true
path: /var/log/mongodb/mongod.log
net:
port: 27018
bindIp: 127.0.0.1,你的從節點IP
security:
authorization: enabled
啟動MongoDB實例后,創建一個管理員用戶用于認證。
mongo --port 27017
use admin
db.createUser({
user: "admin",
pwd: "your_password",
roles: ["root"]
})
在每個MongoDB實例上執行以下命令來初始化副本集。
mongo --port 27017 -u admin -p your_password --authenticationDatabase admin
rs.initiate({
_id: "myReplSet",
members: [
{ _id: 0, host: "主節點IP:27017", priority: 2 },
{ _id: 1, host: "從節點IP:27018", priority: 1 }
]
})
在主節點上執行以下命令來驗證副本集的狀態:
rs.status()
確保每個副本集成員都使用相同的管理員用戶進行認證。
mongo --port 27018 -u admin -p your_password --authenticationDatabase admin
rs.status()
在應用程序中配置MongoDB客戶端連接時,需要提供用戶名和密碼。
例如,在Python中使用pymongo
庫:
from pymongo import MongoClient
client = MongoClient(
host="主節點IP:27017,從節點IP:27018",
username="admin",
password="your_password",
authSource="admin"
)
db = client.your_database
通過以上步驟,你就可以在Ubuntu上配置MongoDB的副本集認證。確保每個實例都正確配置了認證,并且副本集成員之間可以正常通信。