温馨提示×

如何在Ubuntu上配置MongoDB的副本集认证

小樊
44
2025-08-03 17:45:02
栏目: 云计算

在Ubuntu上配置MongoDB的副本集认证需要以下几个步骤:

1. 安装MongoDB

首先,确保你已经在Ubuntu上安装了MongoDB。如果没有安装,可以使用以下命令进行安装:

sudo apt update sudo apt install -y mongodb 

2. 配置MongoDB实例

编辑MongoDB的配置文件 /etc/mongod.conf,为每个实例添加认证相关的配置。

实例1:主节点(Primary)

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 

实例2:从节点(Secondary)

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 

3. 创建管理员用户

启动MongoDB实例后,创建一个管理员用户用于认证。

连接到MongoDB

mongo --port 27017 

创建管理员用户

use admin db.createUser({ user: "admin", pwd: "your_password", roles: ["root"] }) 

4. 配置副本集

在每个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 } ] }) 

5. 验证副本集状态

在主节点上执行以下命令来验证副本集的状态:

rs.status() 

6. 配置副本集成员的认证

确保每个副本集成员都使用相同的管理员用户进行认证。

连接到从节点

mongo --port 27018 -u admin -p your_password --authenticationDatabase admin 

验证从节点状态

rs.status() 

7. 配置MongoDB客户端连接

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

0