mongod for centos7安装及多实例部署

1.获取mongodb包

官网:
https://www.mongodb.com/try
选择software--->community server,选择redhat-centos7版本,tag包

在这里插入图片描述

[root@www opt]# ls
mongodb-linux-x86_64-rhel70-4.2.13.tgz

2.基本配置

1.解压缩
#解压缩包
tar -xf mongodb-linux-x86_64-rhel70-4.2.13.tgz
#移动目录
mv mongodb-linux-x86_64-rhel70-4.2.13 /usr/local/
#重命名
mv mongodb-linux-x86_64-rhel70-4.2.13/ mongodb

2.创建日志目录、配置文件目录、数据存放目录
#日志目录
#master--主节点
#slave--从节点
#arbiter--仲裁节点


mkdir -p /usr/local/mongodb/logs/master
mkdir -p /usr/local/mongodb/logs/slave
mkdir -p /usr/local/mongodb/logs/arbiter

#配置文件
mkdir -p /etc/mongodb/master
mkdir -p /etc/mongodb/slave
mkdir -p /etc/mongodb/arbiter


#数据存放目录
mkdir -p /usr/local/mongodb/data/master
mkdir -p /usr/local/mongodb/data/slave
mkdir -p /usr/local/mongodb/data/arbiter


3.配置多实例配置

三个实例配置

cat /etc/mongodb/master/mongodb_master.conf 

systemLog:
  destination: file
  path: /usr/local/mongodb/logs/master/mongodb.log

storage:
  dbPath: /usr/local/mongodb/data/master

net:
  port: 27017
  bindIp: 0.0.0.0

processManagement:
  fork: true





cat /etc/mongodb/slave/mongodb_slave.conf 

systemLog:
  destination: file
  path: /usr/local/mongodb/logs/slave/mongodb.log

storage:
  dbPath: /usr/local/mongodb/data/slave

net:
  port: 27018
  bindIp: 0.0.0.0

processManagement:
  fork: true




cat /etc/mongodb/arbiter/mongodb_arbiter.conf 

systemLog:
  destination: file
  path: /usr/local/mongodb/logs/arbiter/mongodb.log

storage:
  dbPath: /usr/local/mongodb/data/arbiter

net:
  port: 27019
  bindIp: 0.0.0.0

processManagement:
  fork: true

配置解释说明

#mongo单实例基本配置

systemLog:
  destination: file
  #日志路径
  path: /usr/local/var/log/mongodb/mongo.log 
  #日志追加
  logAppend: true
storage:
  #数据路径
  dbPath: /usr/local/var/mongodb
net:
  #端口
  port: 27110
  #允许所有机器访问
  bindIp: 0.0.0.0
security:
  #开启认证
  authorization: enabled
processManagement:
  #守护进程启动
  fork: true
  #配置副本集名称
replication:
  replSetName: zdvictory
  

4.配置环境变量


vim /etc/profile
#mongodb
export PATH="$PATH:/usr/local/mongodb/bin"

source /etc/profile

5.启动多实例

mongod -f /etc/mongodb/master/mongodb_master.conf 
mongod -f /etc/mongodb/slave/mongodb_slave.conf
mongod -f /etc/mongodb/arbiter/mongodb_arbiter.conf

netstat -tunpl|grep mongod
tcp        0      0 127.0.0.1:27017         0.0.0.0:*               LISTEN      47752/mongod        
tcp        0      0 127.0.0.1:27018         0.0.0.0:*               LISTEN      47820/mongod        
tcp        0      0 127.0.0.1:27019         0.0.0.0:*               LISTEN      47878/mongod 

6.连接多实例

[root@www bin]# pwd
/usr/local/mongodb/bin
#逐一连接到实例
/mongo --host 192.168.13.59 --post 27017
/mongo --host 192.168.13.59 --post 27018
/mongo --host 192.168.13.59 --post 27019



#同时连接到多实例
mongo 127.0.0.1:27017,127.0.0.1:27018,127.0.0.1:27019

7.关闭多实例

1.通过命令关闭
mongod  --shutdown  --dbpath /usr/local/mongodb/data/master
mongod  --shutdown  --dbpath /usr/local/mongodb/data/slave
mongod  --shutdown  --dbpath /usr/local/mongodb/data/arbiter

#参数说明
--shutdown  关闭
--dbpath     指定数据路径
备注:mongod 命令的 shutdown 选项能干净的关闭 MongoDB 服务。




2.通过kil关闭
kill -2  PID 或 kill -15 PID

建议不要使用 ”kill -9 pid“,因为如果 MongoDB 运行在没开启日志(--journal)的情况下, 可能会造成数据损失。

8.配置mongodb副本集群

修改配置文件

#配置所有实例的副本集,修改配置文件即可
replication:
  replSetName: zdvictory


#重启实例
关闭
mongod  --shutdown  --dbpath /usr/local/mongodb/data/master
mongod  --shutdown  --dbpath /usr/local/mongodb/data/slave
mongod  --shutdown  --dbpath /usr/local/mongodb/data/arbiter



启动
mongod -f /etc/mongodb/master/mongodb_master.conf 
mongod -f /etc/mongodb/slave/mongodb_slave.conf
mongod -f /etc/mongodb/arbiter/mongodb_arbiter.conf

在任意1台实例修改

登陆任一mongodb节点添加创建集群:
mongo -host 192.168.13.59 --port 27017
mongo -host 192.168.13.59 --port 27018
mongo -host 192.168.13.59 --port 27019



#这里初始化是1台主、1台从、1太选举
config = {
"_id":"zdvictory", #这个名字要和实例配置文件中的一致
"members":[
{"_id":0,"host":"192.168.13.59:27017",priority:1}, 
{"_id":1,"host":"192.168.13.59:27018"},
{"_id":2,"host":"192.168.13.59:27019",arbiterOnly:true}
]
}


#配置1从2从
config = {
"_id":"zdvictory", 
"members":[
{"_id":0,"host":"192.168.13.59:27017",priority:1}, 
{"_id":1,"host":"192.168.13.59:27018"},
{"_id":2,"host":"192.168.13.59:27019"}
]
}


#初始化
rs.initiate(config)

各实例状态查看

#可以检查各实例的状态
zdvictory:PRIMARY> rs.status()

	"members" : [
		{
			"_id" : 0,
			"name" : "192.168.13.59:27017",
			"health" : 1,
			"state" : 1,
			"stateStr" : "PRIMARY",

			"_id" : 1,
			"name" : "192.168.13.59:27018",
			"health" : 1,
			"state" : 2,
			"stateStr" : "SECONDARY",

			"_id" : 2,
			"name" : "192.168.13.59:27019",
			"health" : 1,
			"state" : 7,
			"stateStr" : "ARBITER",

#这里就说明副本集群部署完成了

9.开启主从安全认证

创建管理用户和最高权限用户


#在主库进行操作
切换到admin库
zdvictory:PRIMARY> use admin
switched to db admin


#userAdminAnyDatabase:授权在所有的数据库上管理User的权限,只在admin中可用

zdvictory:PRIMARY> db.createUser({user:"admin",pwd: "zdadmin123",roles:[{ role:"userAdminAnyDatabase", db:"admin" }]})
Successfully added user: {
	"user" : "admin",
	"roles" : [
		{
			"role" : "userAdminAnyDatabase",
			"db" : "admin"
		}
	]
}

#root :超级账户权限,只在admin中可用
zdvictory:PRIMARY> db.createUser({user: "root",pwd: "zdroot123",roles: [ { role: "root", db: "admin" }]})
Successfully added user: {
	"user" : "root",
	"roles" : [
		{
			"role" : "root",
			"db" : "admin"
		}
	]
}

#创建拥有者权限账号
use  orcl
db.createUser({user:"orcladmin",pwd:"pwd123",roles:[{"role":"dbOwner","db":"orcl"}]})  


#尝试用这两个用户进行验证登录
zdvictory:PRIMARY> db.auth('admin','zdadmin123');
1
成功

use admin  
zdvictory:PRIMARY> db.auth('root','zdroot123');
1
成功


生成mongodb.key文件

#创建加密文件
touch /usr/local/mongodb/mongodb.keyfile

#产生加密信息
openssl rand -base64 756 > /usr/local/mongodb/mongodb.keyfile

#控制keyFile的权限
chmod 600 /usr/local/mongodb/mongodb.keyfile

将mongodb.key文件发给其他两个从库节点

scp mongodb.keyfile  root@192.168.13.90:/usr/local/mongodb/
scp mongodb.keyfile  root@192.168.13.91:/usr/local/mongodb/

开启三个节点的安全认证

====mongpdb1=====

systemLog:
  destination: file
  path: /usr/local/mongodb/logs/master/mongodb.log

storage:
  dbPath: /usr/local/mongodb/data/master

net:
  port: 27017
  bindIp: 0.0.0.0

processManagement:
  fork: true

security:
  #authorization: enabled
  keyFile: /usr/local/mongodb/mongodb.keyfile
replication:
  replSetName: zdvictory



====mongodb2=====
systemLog:
  destination: file
  path: /usr/local/mongodb/logs/slave1/mongodb.log

storage:
  dbPath: /usr/local/mongodb/data/slave1

net:
  port: 27017
  bindIp: 0.0.0.0

processManagement:
  fork: true


security:
#  authorization: enabled
  keyFile: /usr/local/mongodb/mongodb.keyfile
replication:
  replSetName: zdvictory


====mongodb3=====

systemLog:
  destination: file
  path: /usr/local/mongodb/logs/slave2/mongodb.log

storage:
  dbPath: /usr/local/mongodb/data/slave2

net:
  port: 27017
  bindIp: 0.0.0.0

processManagement:
  fork: true


security:
#  authorization: enabled
 keyFile: /usr/local/mongodb/mongodb.keyfile

replication:
  replSetName: zdvictory

重启三个节点


1.关闭三个节点
mongod  --shutdown  --dbpath /usr/local/mongodb/data/master
mongod  --shutdown  --dbpath /usr/local/mongodb/data/slave
mongod  --shutdown  --dbpath /usr/local/mongodb/data/arbiter

#参数说明
--shutdown  关闭
--dbpath     指定数据路径
备注:mongod 命令的 shutdown 选项能干净的关闭 MongoDB 服务。


2.启动三个节点
mongod -f /etc/mongodb/master/mongodb_master.conf 
mongod -f /etc/mongodb/slave/mongodb_slave.conf
mongod -f /etc/mongodb/arbiter/mongodb_arbiter.conf


3.进入master进行安全认证
[root@mongodb1 master]# mongo --host 192.168.13.89 --port 27017
MongoDB shell version v4.2.13
connecting to: mongodb://192.168.13.89:27017/?compressors=disabled&gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("c7d69258-0cb5-4c0b-a0d7-0c21ef47491b") }
MongoDB server version: 4.2.13

#返回1说明验证成功
zdvictory:PRIMARY> db.auth('admin','zdadmin123');
1
zdvictory:PRIMARY> use admin
switched to db admin
zdvictory:PRIMARY> db.auth('root','zdroot123');
1


通过mongodb客户端连接

在这里插入图片描述

输入miongo的ip、端口,自定i名称

在这里插入图片描述

填写配置mongo认证的账户密码

在这里插入图片描述

测试连接ok,登录即可

在这里插入图片描述

Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐