MongoDB 集群部署
环境
系统:CentOS 7
主机 | 端口 | 角色 |
---|---|---|
192.168.93.100 | 27017 | master |
192.168.93.101 | 27017 | slave |
192.168.93.102 | 27017 | arditer |
镜像拉取
docker pull mongo:4.4
挂载目录
# 配置文件地址
mkdir -p /data/mongodb/configdb
# db 存放地址
mkdir -p /data/mongodb/db
创建配置文件
vi /data/mongodb/configdb/mongod.conf
mongod.conf
net:
port: "27017" # 启动端口
bindIp: "0.0.0.0 " # 允许连接的 IP
systemLog:
logAppend: "true" # 重新启动 mongodb 的时候日志拼接在以前的日志文件上
security:
keyFile: "/data/configdb/mongodb-keyfile" # 路径是容器映射到宿主机的路径
authorization: "enabled" # 开启客户端连接认证,disabled 关闭授权
replication:
replSetName: "mongo_rs"
生成 keyfile 文件
openssl rand -base64 745 > /data/mongodb/configdb/mongodb-keyfile
chmod 400 /data/mongodb/configdb/mongodb-keyfile
# 一个节点生成后,复制到另外两个节点对应的位置
scp mongodb-keyfile [email protected]:/data/mongodb/configdb/
scp mongodb-keyfile [email protected]:/data/mongodb/configdb/
启动容器
# -i 保持容器的标准输入打开
docker run -di \
-p 27017:27017 \
-v /data/mongodb/configdb:/data/configdb \
-v /data/mongodb/db:/data/db \
mongo:4.4 -f /data/configdb/mongod.conf
添加主节点副本集
# 进入主节点
docker exec -it ea0ed200a28f mongo admin
# 添加主节点副本集
rs.initiate({
_id: "mongo_rs",
members: [{
_id: 0,
host: "192.168.93.100:27017"
}]
});
添加超户
# 进入主节点
docker exec -it ea0ed200a28f mongo admin
# 添加超户
db.createUser({
user: "admin",
pwd: "123456",
roles: [{
role: "root",
db: "admin"
}]
});
添加其它副本集
# 进入主节点
docker exec -it ea0ed200a28f mongo -u admin -p 123456 --port 27017 admin
rs.add("192.168.93.101:27017");
rs.addArb("192.168.93.102:27017");
添加普通账号
# 进入主节点
docker exec -it ea0ed200a28f mongo -u admin -p 123456 --port 27017 admin
# 添加普通账号
db.createUser({
user: "lsy",
pwd: "123456",
roles: [{
role: "readWrite",
db: "test"
},{
role: "dbAdmin",
db: "test"
},{
role: "userAdmin",
db: "test"
}]
});
查看集群状态
# 进入主节点
docker exec -it ea0ed200a28f mongo -u admin -p 123456 --port 27017 admin
use admin;
rs.status();
参考
docker 部署mongodb集群(主、从、仲裁) - ①尘不染 - 博客园 (cnblogs.com)
标签:部署,MongoDB,27017,db,admin,集群,mongodb,configdb,data From: https://www.cnblogs.com/wndexx/p/18489112