在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的副本集认证。确保每个实例都正确配置了认证,并且副本集成员之间可以正常通信。