centos7 mongodb安装及分布式搭建
1、mongodb安装
使用wget下载mongodb压缩包
[root@master ~]# wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-4.0.0.tgz
解压到/usr/local/src/
[root@master ~]# tar -zxvf mongodb-linux-x86_64-4.0.0.tgz -C /usr/local/src/
重命名文件夹
[root@master ~]# mv /usr/local/src/mongodb-linux-x86_64-4.0.0/ /usr/local/src/mongodb
配置环境变量
[root@master ~]# vim /etc/profile
export MONGODB_HOME=/usr/local/src/mongodb
export PATH=$PATH:$MONGODB_HOME/bin
[root@master ~]# source /etc/profile
创建数据库目录
[root@master mongodb]# mkdir db
创建日志存放目录和日志文件
[root@master mongodb]# mkdir log
[root@master mongodb]# cd log/
[root@master log]# touch mongodb.log
创建并修改mongodb配置文件
[root@master log]# cd ..
[root@master mongodb]# vim mongodb.conf
port=27017 #端口
dbpath= /usr/mongodb/db #数据库存文件存放目录
logpath= /usr/mongodb/log/mongodb.log #日志文件存放路径
logappend=true #使用追加的方式写日志
fork=true #以守护进程的方式运行,创建服务器进程
maxConns=100 #最大同时连接数
noauth=true #不启用验证
journal=true #每次写入会记录一条操作日志(通过journal可以重新构造出写入的数据)。
#即使宕机,启动时wiredtiger会先将数据恢复到最近一次的checkpoint点,然后重放后续的journal日志来恢复。
storageEngine=wiredTiger #存储引擎有mmapv1、wiretiger、mongorocks
bind_ip = 0.0.0.0 #这样就可外部访问了,例如从win10中去连虚拟机中的MongoDB
设置文件夹权限
[root@master mongodb]# chmod 777 db
[root@master mongodb]# chmod 777 log
启动mongodb
[root@master mongodb]# cd
[root@master ~]# mongod --config /usr/local/src/mongodb/mongodb.conf
查看端口
[root@master ~]# ps aux | grep mongodb
进入mongodb
[root@master ~]# mongo
2、集群搭建
修改配置文件
[root@master ~]# vim /usr/local/src/mongodb/mongodb.conf
port=27017 #端口
dbpath= /usr/local/src/mongodb/db #数据库存文件存放目录
logpath= /usr/local/src/mongodb/log/mongodb.log #日志文件存放路径
logappend=true #使用追加的方式写日志
fork=true #以守护进程的方式运行,创建服务器进程
maxConns=100 #最大同时连接数
noauth=true #不启用验证
journal=true #每次写入会记录一条操作日志(通过journal可以重新构造出写入的数据)>。
#即使宕机,启动时wiredtiger会先将数据恢复到最近一次的checkpoint点,然后重放后续>的journal日志来恢复。
storageEngine=wiredTiger #存储引擎有mmapv1、wiretiger、mongorocks
bind_ip = 0.0.0.0 #这样就可外部访问了,例如从win10中去连虚拟机中的MongoDB
replSet=zhangsan
将mongodb文件加传到其他虚拟机
[root@master ~]# scp -r /usr/local/src/mongodb/ root@slave1:/usr/local/src/
[root@master ~]# scp -r /usr/local/src/mongodb/ root@slave2:/usr/local/src/
添加环境变量
export MONGODB_HOME=/usr/local/src/mongodb
export PATH=$PATH:$MONGODB_HOME/bin
启动三台虚拟机的mongodb服务
mongod --config /usr/local/src/mongodb/mongodb.conf
配置复制集
(执行此操作前一定要把/usr/local/src/mongodb/db里的数据清空)
[root@master ~]# mongo
> var rsconf = {
_id:'zhangsan', //_id与配置文件中指定的服务所属的复制集相同
members: //复制集成员
[
{
_id:1, //成员id
host:'192.168.1.6:27017' //成员所属节点ip
},
{
_id:2,
host:'192.168.1.7:27017'
},
{
_id:3,
host:'192.168.1.8:27017'
}
]
}
加载rsconf配置文件
> rs.initiate(rsconf);
{
"ok" : 1,
"operationTime" : Timestamp(1639979245, 1),
"$clusterTime" : {
"clusterTime" : Timestamp(1639979245, 1),
"signature" : {
"hash" : BinData(0,"AAAAAAAAAAAAAAAAAAAAAAAAAAA="),
"keyId" : NumberLong(0)
}
}
}