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