在本文中,我们将详细介绍如何在CentOS 8上搭建MongoDB 4.4分片集群,MongoDB是一种非常流行的NoSQL数据库,它具有高性能、高可用性和易扩展性等特点,分片是MongoDB的一种数据分布策略,它将数据分布在多个服务器上,以提高查询性能和存储容量。
环境准备
1、系统环境:CentOS 8
2、MongoDB版本:4.4
3、MongoDB分片集群节点数量:3个
安装MongoDB
1、更新系统软件包:
sudo yum update y
2、添加MongoDB官方仓库:
sudo yum install y mongodborg
3、启动MongoDB服务:
sudo systemctl start mongod
4、设置MongoDB开机自启:
sudo systemctl enable mongod
配置MongoDB副本集
1、创建一个用于存放配置文件的目录:
sudo mkdir p /etc/mongodb
2、复制一份默认的配置文件模板:
sudo cp /usr/share/mongodborg/mongodborg4.4/bin/templates/mongod.conf /etc/mongodb/mongod.conf
3、修改配置文件,设置副本集参数:
开启副本集模式 replication: true 副本集名称 replSetName: "rs0" 数据存储目录 dbPath: "/var/lib/mongodb" 日志文件路径 logpath: "/var/log/mongodb/mongod.log" 端口号,默认为27017 port: 27017
4、创建三个数据目录:
sudo mkdir p /var/lib/mongodb/{1,2,3}
5、分别启动三个MongoDB实例:
sudo mongod config /etc/mongodb/mongod.conf fork port 27017 dbpath /var/lib/mongodb/1 logpath /var/log/mongodb/mongod1.log & sudo mongod config /etc/mongodb/mongod.conf fork port 27018 dbpath /var/lib/mongodb/2 logpath /var/log/mongodb/mongod2.log & sudo mongod config /etc/mongodb/mongod.conf fork port 27019 dbpath /var/lib/mongodb/3 logpath /var/log/mongodb/mongod3.log &
初始化副本集并添加节点
1、使用mongo
命令连接到任意一个MongoDB实例:
mongo host <hostname> port 27017 u <username> p <password> authenticationDatabase admin sslMode requireSSL tlsCAFile /etc/ssl/certs/cabundle.crt tlsAllowInvalidHostnames tlsCertificateKeyFile /etc/ssl/private/<hostname>.key tlsCertificateKeyFilePassword <password> tlsCertificateFile /etc/ssl/certs/<hostname>.crt authenticationMechanism MONGODBX509 pemKeyFile /etc/ssl/private/<hostname>.pem pemKeyPassword <password> setParameter failIndexKeyTooLong=false eval "rs.initiate()" authenticationDatabase admin u <username> p <password> <database> <collection> <json_object> { "_id": "rs0", "members": [ { "_id": 0, "host": "<hostname1>:27017", "arbiterOnly": false }, { "_id": 1, "host": "<hostname2>:27018", "arbiterOnly": false }, { "_id": 2, "host": "<hostname3>:27019", "arbiterOnly": false } ] }" #替换为实际的主机名、用户名、密码等信息,以及要操作的数据库和集合名。
原创文章,作者:K-seo,如若转载,请注明出处:https://www.kdun.cn/ask/510500.html