首页 > 数据库 >MongoDB 集群部署

MongoDB 集群部署

时间:2024-10-21 16:23:02浏览次数:1  
标签:部署 MongoDB 27017 db admin 集群 mongodb configdb data

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

相关文章