在Debian上配置MongoDB副本集认证需要以下几个步骤:
首先,确保你已经在所有需要加入副本集的服务器上安装了MongoDB。你可以从MongoDB官方网站下载并安装适合Debian的MongoDB版本。
在每个服务器上,编辑MongoDB配置文件(通常位于/etc/mongod.conf),添加以下内容:
security:
authorization: enabled
这将启用MongoDB的认证功能。
在每个服务器上,使用以下命令重启MongoDB服务以应用更改:
sudo systemctl restart mongod
在主节点上,创建一个具有管理权限的用户。首先,连接到MongoDB shell:
mongo
然后,创建一个管理员用户并设置密码:
use admin
db.createUser({
user: "admin",
pwd: "your_password",
roles: ["userAdminAnyDatabase", "readWriteAnyDatabase", "dbAdminAnyDatabase"]
})
按Enter键接受默认的_id字段。现在,你应该已经创建了一个管理员用户。
在主节点上,为每个副本集成员创建一个用户,并授予适当的角色。例如,如果你有一个名为replica1的副本集成员,你可以创建一个用户并授予readWrite角色:
use your_database
db.createUser({
user: "replica1",
pwd: "replica1_password",
roles: ["readWrite"]
})
按Enter键接受默认的_id字段。
在主节点上,使用rs.initiate()命令初始化副本集。首先,连接到MongoDB shell:
mongo -u admin -p your_password --authenticationDatabase admin
然后,运行以下命令初始化副本集:
rs.initiate({
_id: "your_replica_set_name",
members: [
{ _id: 0, host: "master_ip:27017", priority: 2 },
{ _id: 1, host: "replica1_ip:27017", priority: 1 },
{ _id: 2, host: "replica2_ip:27017", priority: 1 }
]
})
将your_replica_set_name替换为你的副本集名称,将master_ip、replica1_ip和replica2_ip替换为相应服务器的IP地址。
在MongoDB shell中,运行以下命令查看副本集状态:
rs.status()
你应该能看到所有副本集成员及其状态。
现在,你已经在Debian上配置了MongoDB副本集认证。所有副本集成员都将使用创建的用户进行身份验证。