在 CentOS 上配置 MongoDB 集群,通常指三种之一:
下面我按最常用、生产推荐的方式:CentOS + MongoDB 副本集(3节点) 给你完整步骤。
| 节点 | IP | 角色 |
|---|---|---|
| node1 | 192.168.1.11 | PRIMARY |
| node2 | 192.168.1.12 | SECONDARY |
| node3 | 192.168.1.13 | SECONDARY |
MongoDB 版本建议:6.x / 7.x
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
yum install -y mongodb-org
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
openssl rand -base64 756 > /etc/mongo-keyfile
chmod 600 /etc/mongo-keyfile
scp /etc/mongo-keyfile root@192.168.1.12:/etc/
scp /etc/mongo-keyfile root@192.168.1.13:/etc/
systemctl enable mongod
systemctl start mongod
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()
use admin
db.createUser({
user: "root",
pwd: "StrongPassword",
roles: ["root"]
})
之后连接:
mongo -u root -p --authenticationDatabase admin
rs.isMaster()
rs.status()
如果你需要 分片集群,组件包括:
结构:
mongos → config → shard1 / shard2 / shard3
如果你需要,我可以单独给你画架构图 + 分片配置步骤。
firewall-cmd --add-port=27017/tcp --permanent
firewall-cmd --reload
yum install -y ntp
systemctl enable ntpd
如果你告诉我:
我可以给你完全定制版配置。