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集群搭建的主要内容,如果未能解决你的问题,请参考以下文章