温馨提示×

centos mongodb怎么配集群

小樊
41
2026-09-08 21:51:37
栏目: 云计算

在 CentOS 上配置 MongoDB 集群,通常指三种之一:

  1. 副本集(Replica Set) —— 高可用(最常用)
  2. 分片集群(Sharded Cluster) —— 大数据水平扩展
  3. 单机多实例测试集群

下面我按最常用、生产推荐的方式:CentOS + MongoDB 副本集(3节点) 给你完整步骤。


一、环境准备(3台 CentOS)

节点 IP 角色
node1 192.168.1.11 PRIMARY
node2 192.168.1.12 SECONDARY
node3 192.168.1.13 SECONDARY

MongoDB 版本建议:6.x / 7.x


二、3台机器都执行:安装 MongoDB

1. 添加 MongoDB YUM 源

cat > /etc/yum.repos.d/mongodb-org.repo <<EOF
[mongodb-org]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/8/mongodb-org/7.0/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-7.0.asc
EOF

CentOS 7 把 redhat/8 改成 redhat/7

2. 安装

yum install -y mongodb-org

三、配置 MongoDB(所有节点)

1. 修改配置文件

vi /etc/mongod.conf

关键配置:

storage:
  dbPath: /var/lib/mongo
  journal:
    enabled: true

systemLog:
  destination: file
  path: /var/log/mongodb/mongod.log
  logAppend: true

net:
  port: 27017
  bindIp: 0.0.0.0

replication:
  replSetName: rs0

security:
  authorization: enabled
  keyFile: /etc/mongo-keyfile

四、配置认证(重要)

1. 生成 keyFile(只在 node1 执行)

openssl rand -base64 756 > /etc/mongo-keyfile
chmod 600 /etc/mongo-keyfile

2. 拷贝到其他节点

scp /etc/mongo-keyfile root@192.168.1.12:/etc/
scp /etc/mongo-keyfile root@192.168.1.13:/etc/

五、启动 MongoDB(所有节点)

systemctl enable mongod
systemctl start mongod

六、初始化副本集(只在 node1 执行)

mongo
rs.initiate({
  _id: "rs0",
  members: [
    { _id: 0, host: "192.168.1.11:27017" },
    { _id: 1, host: "192.168.1.12:27017" },
    { _id: 2, host: "192.168.1.13:27017" }
  ]
})

查看状态:

rs.status()

七、创建管理员用户(node1)

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

之后连接:

mongo -u root -p --authenticationDatabase admin

八、验证集群

rs.isMaster()
rs.status()

九、可选:分片集群(简说明)

如果你需要 分片集群,组件包括:

  • mongos(路由)
  • config server(副本集)
  • shard(副本集)

结构:

mongos → config → shard1 / shard2 / shard3

如果你需要,我可以单独给你画架构图 + 分片配置步骤。


十、常见问题

❌ 节点无法加入

  • 防火墙
firewall-cmd --add-port=27017/tcp --permanent
firewall-cmd --reload

❌ 时间不同步

yum install -y ntp
systemctl enable ntpd

如果你告诉我:

  • CentOS 版本
  • MongoDB 版本
  • 是 测试 / 生产
  • 是否要 分片

我可以给你完全定制版配置。

0 踩