Mongodb集群搭建

Posted 西风h

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mongodb集群搭建相关的知识,希望对你有一定的参考价值。

Mongodb集群搭建
Mongodb 下载
下载地址:https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-3.6.17.tgz 注:下载链接、无需访问,点开会自动下载
官网地址:https://www.mongodb.com/download-center/community
本实例 		(版本3.6.17):
主节点: 	100.94.56.24
从节点1:	100.94.56.25
从节点2:	100.94.56.26
上传解压
tar -xvf mongodb-linux-x86_64-rhel70-3.6.17.tgz -C /data/
cd /data/
ln -sv mongodb-linux-x86_64-rhel70-3.6.17 mongodb
创建用户与目录
useradd mongodb
mkdir -pv /data/mongodb/log,etc,data,pid
创建配置文件
vim /data/mongodb/etc/mongodb_27017.conf
logpath=/data/ mongodb/log/mongodb_27017.log 	#跟端口保持一致,副本节1点端口27018,副本节点2端口27019
pidfilepath=/data/ mongodb/pid/mongodb_27017.pid
logappend=true
bind_ip=100.94.56.24  #不同节点监听的IP需要修改
port=27017
fork=true   #守护进程的方式运行
replSet=osmongodb
dbpath=/data/mongodb/data/
oplogSize=10000
noprealloc=true  #禁用预分配的数据文件
shardsvr=true   #分片
directoryperdb=true #数据目录存储模式,每个数据库的文件存储在DBPATH指定目录的不同的文件夹中
启动mongodb
授权目录给指定用户chown -R mongodb.mongodb /data/mongodb/
切换用户 
passwd mongodb ; su - mongodb 
/data/mongodb/bin/mongod -f /data/mongodb/etc/mongodb_27017.conf

副本节1、副本节点2安装配置方法一样,文件跟端口名一样
初始化副本节
主节点为例:
1.	cd /data/mongodb/
2.	bin/mongo --host 100.94.56.24 --port 27017
3.	config = _id:'osmongodb',members: [_id: 0, host: '100.94.56.24:27017',_id: 1, host:'100.94.56.25:27018',_id: 2, host:'100.94.56.26:27019']
4.	rs.initiate(config) #初始化副本集
5.	rs.status() #查看副本集状态

注:从节点需要查询数据需执行:rs.slaveOk()

创建管理用户在主节点上操作
/data/mongodb/bin/mongo --host 100.94.56.24 --port 27017
admin = db.getSiblingDB("admin")
admin.createUser(
      
        user: "root",
        pwd: "PassWord123",
        roles: [  role: "root", db: "admin"  ]
      
)
开启认证
主节点创建keyFile文件
openssl rand -base64 666 > /data/mongodb/etc/keyfile
chmod 600 /data/mongodb/etc/keyfile
拷贝keyFile文件到其它节点
scp /data/mongodb/etc/keyfile mongodb@节点2: /data/mongodb/etc/
scp /data/mongodb/etc/keyfile mongodb@节点3: /data/mongodb/etc/
修改配置文件
vim /data/mongodb/etc/mongodb_27017.conf (所有节点都要操作)
增加如下配置
auth=true
keyFile=/data/mongodb/etc/keyfile


关闭mongodb
cd /data/mongodb
bin/mongod --shutdown  --dbpath=/data/mongodb/data/
启动mongodb
主节点:
/data/mongodb/bin/mongod -f /data/mongodb/etc/mongodb_27017.conf
	副本节点1
/data/mongodb/bin/mongod -f /data/mongodb/etc/mongodb_27018.conf
	副本节点2
/data/mongodb/bin/mongod -f /data/mongodb/etc/mongodb_27019.conf

创建业务用户
/data/mongodb/bin/mongo --host 192.168.3.28 --port 27017
 use admin;
db.auth("root","PassWord123")
	use testdb;
	db.createUser(user:"jack",pwd:"PassWord321",roles:[role:"readWrite",db:"testdb"])
	验证用户
		db.auth("jack","PassWord321")
插入数据验证
use testdb
db.auth("jack","PassWord321")
db.name.insert(name:'jack',age:'20')
配置环境变量
cat > /etc/profile.d/mongo.sh <<EOF
PATH=\\$PATH:/data/mongodb/bin
export PATH
EOF
source /etc/profile.d/mongo.sh

以上是关于Mongodb集群搭建的主要内容,如果未能解决你的问题,请参考以下文章

MongoDB分片集群搭建

Docker——基于Docker搭建MongoDB分片集群

MongoDB——MongoDB分片集群(Sharded Cluster)两种搭建方式

Mongodb集群搭建

Mongodb集群搭建的三种方式

DataBase MongoDB集群方案介绍及搭建