官网下载
https://www.mongodb.com/try/download/community
mongodb-linux-x86_64-rhel70-4.4.6.tgz
tar -zvxf mongodb-linux-x86_64-rhel70-4.4.6.tgz
mv mongodb-linux-x86_64-rhel70-4.4.6 /usr/local/mongodb
这个是编译安装好的 直接可以拿来用
如果需要编译安装则需要安装基础软件包
yum install net-tools bind-utils -y
yum install vim wget lsof gcc gcc-c++ bzip2 -y
配置本地域名解析
node1 192.168.184.170 主
node2 192.168.184.171 备
node3 192.168.184.172 仲裁
设置环境变量
vim /etc/profile
MONGODB_HOME=/usr/local/mongodb
PATH=$MONGODB_HOME/bin:$PATH
export MONGODB_HOME
刷新并查看版本
source /etc/profile
mongod -version
创建需要的文件夹和文件
mkdir -p /usr/local/mongodb/conf
mkdir -p /usr/local/mongodb/log
mkdir -p /usr/local/mongodb/data
vim /usr/local/mongodb/conf/mongodb.conf
port=27017
dbpath=/usr/local/mongodb/data
logpath=/usr/local/mongodb/log/mongodb.log
logappend=true
fork=true
replSet=rep0
auth=false
maxConns=5000
bind_ip=0.0.0.0
设置服务
vim /lib/systemd/system/mongodb.service
[Unit]
Description=mongodb
After=network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
PIDFile=/usr/local/mongodb/data/mongod.lock
ExecStart=/usr/local/mongodb/bin/mongod -f /usr/local/mongodb/conf/mongodb.conf
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true
[Install]
WantedBy=multi-user.target
设置开机启动和刷新
systemctl enable mongodb.service
systemctl daemon-reload
systemctl start mongodb.service
另外两台做同样配置,好做集群,以上单节点完成
初始化复制集
启动三个节点的mongodb服务后,开始把它们初始化为副本集。
在想设置primary的节点node1上初始化复制集rep0
命令如下:
config_repl={_id:"rep0", members:[{_id:0, host:"node1:27017", priority:1}, {_id:1, host:"node2:27017"}, {_id:2, host:"node3:27017", arbiterOnly:true}]}
rs.initiate(config_repl);
正常初始化复制集之后,可以看到:
node1节点变更为PRIMARY
node2节点变更为SECONDARY
node3节点变更为ARBITER(仲裁节点)。
可以通过rs.status()查看详情
数据同步一些指令
创建数据库,如果存在则是进入数据库
use haha
插入数据
db.say.insert({"text":"Hello youqu"})
查看数据
db.say.find()
副节点默认不能读写,需要设置
rs.slaveOk()
删除匹配到的第一条记录,即使匹配到多个也只删一条
db.say.deleteOne({"test" : "hello Yang" })?
删除所有符合条件的文档
db.say.deleteMany({"test" : "hello Yang" })?
关闭节点
use admin
db.shutdownServer()