在CentOS上搭建MongoDB集群(复制集)的步骤如下:
首先,确保你的CentOS系统已经更新到最新状态:
sudo yum update -y
然后,添加MongoDB官方YUM仓库:
cat <<EOF | sudo tee /etc/yum.repos.d/mongodb-org.repo
[mongodb-org-4.4]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/\$releasever/mongodb-org/4.4/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-4.4.asc
EOF
安装MongoDB:
sudo yum install -y mongodb-org
启动MongoDB服务并设置开机自启:
sudo systemctl start mongod
sudo systemctl enable mongod
假设你有三台服务器,分别是server1
, server2
, server3
,它们的IP地址分别是192.168.1.1
, 192.168.1.2
, 192.168.1.3
。
/etc/mongod.conf
在每台服务器的/etc/mongod.conf
文件中添加或修改以下内容:
replication:
replSetName: "rs0"
sudo systemctl restart mongod
连接到任意一台MongoDB实例(例如server1
):
mongo --host 192.168.1.1
在Mongo shell中初始化复制集:
rs.initiate(
{
_id: "rs0",
members: [
{ _id: 0, host: "192.168.1.1:27017" },
{ _id: 1, host: "192.168.1.2:27017" },
{ _id: 2, host: "192.168.1.3:27017" }
]
}
)
在Mongo shell中执行以下命令来验证复制集的状态:
rs.status()
你应该能看到复制集的成员列表及其状态。
如果你希望实现读写分离,可以在客户端连接字符串中指定读取偏好设置。例如,在应用程序配置文件中:
spring:
data:
mongodb:
uri: mongodb://username:password@192.168.1.1:27017,192.168.1.2:27017,192.168.1.3:27017/database?replicaSet=rs0&readPreference=secondaryPreferred
27017
。通过以上步骤,你应该能够在CentOS上成功搭建一个MongoDB复制集。