安装
1.打开链接 https://www.mongodb.com/download-center/community
选择合适的版本

复制生成的链接。
2.登录服务器
在 目标目录中执行
wget 第一步中复制的链接
下载完成后解压 tar -xzvf 压缩包名
cd 进去之后创建 db 目录 logs 目录
到bin 目录下创建mongodb.conf 配置文件
```# 数据库文件存储位置
dbpath = /home/mongo/mongodb/db
# log文件存储位置
logpath = /home/mongo/mongodb/logs/mongodb.log
# 使用追加的方式写日志
logappend = true
# 是否以守护进程方式运行
fork = true
# 端口号
port = 27017
# 是否启用认证
# auth = true
# 集群的私钥的完整路径,只对于Replica Set 架构有效(noauth = true时不用配置此项)
# keyFile = /usr/local/mongodb/mongodb-keyfile
# diaglog选项 0=off 1=W 2=R 3=both 7=W+some reads
#diaglog = 0
# 设置oplog的大小(MB)
oplogSize=2048
# 启用日志选项,MongoDB的数据操作将会写入到journal文件夹的文件里
journal=true
# 设置副本集名称
replSet = bangnizu
```
保存之后 启动
./mongod -f 配置文件名
在其他子节点服务器上执行相同的操作
3.在主节点服务器上进行操作
进入mongodb bin目录下
执行 ./mongo
进入shell 命令行
config = {"_id" : "BNZ_RS","members" : [{"_id" : 0,"host" : "120.27.208.123:23717"},
{"_id" : 1,"host" : "182.92.239.193:23717"},
{"_id" : 2,"host" : "47.115.13.44:23717"}]
}
rs.initiate(config)
进行初始化
如果已经进行过复制集初始化
则执行 rs.reconfig(config)
注意的坑:
1.配置文件中一定要加入 bind_ip = 0.0.0.0
否则会出现找不到服务器。
==### **补充:重要**==
警告:直接使用默认mongodb默认设置非常危险,因为没有鉴权校验相当于裸奔,而且使用默认端口更容易被黑客工具轻易的扫描到。单节点也非常危险,没有备份,容灾,数据没有保障的情况下非常容易发生重大事故。
解决方案:
参考文章:https://www.jianshu.com/p/675f4712bf3a
第一步:修改配置文件。
先不启用鉴权。
```systemLog:
destination: file
logAppend: true
# [1]日志存储路径
path: /**/**/**/mongodb.log
# Where and how to store data.
storage:
# [2]数据存储路径
dbPath: /**/**/**
journal:
enabled: true
# engine:
# mmapv1:
# wiredTiger:
# how the process runs
# processManagement:
# fork: true # fork and run in background
# pidFilePath: /var/run/mongodb/mongod.pid # location of pidfile
# network interfaces
net:
# [3]端口,默认为27017,修改为其他端口增加安全性。
port: *****
# [4]如果需要对外提供访问,请把该下面那行注释掉
bindIp: 0.0.0.0 # Listen to local interface only, comment to listen on all interfaces.
```
第二步:
启动数据库,创建用户。
mongod -f 配置文件路径
```use admin;
db.createUser({user:"dba",pwd:"yourpassword",roles:[{role:"root",db:"admin"},{role:"userAdminAnyDatabase",db:"admin"}]});
```
第三步:生成鉴权文件 复制集连接需要鉴权文件。
openssl rand -base64 753 > yourKeyFile 生产文件。然后将它复制到你的所有节点数据库目录中。即配置文件中的dbPath 下。
第四步:在配置文件中加入鉴权配置。并复制到所有的节点
```security:
# 启用鉴权
authorization: enabled
# 你的keyFile存放路径
keyFile: /var/lib/mongo/yourKeyfile
replication:
# oplogSize的大小,单位为M,建议空闲磁盘的5%
oplogSizeMB: 1024
# 复制集的名称,需要记住
replSetName: myReplSet
```
第四步:重启所有的数据库服务。然后在你选择的主节点进行授权登录,用户名密码。并指定授权数据库 admin
config = {"_id" : "myReplSet","members" : [{"_id" : 0,"host" : "子节点1:端口号"},
{"_id" : 1,"host" : "子节点2:端口号"},
{"_id" : 2,"host" : "子节点3:端口号"}]
}
rs.initiate(config)
如果返回 1,则表示成功了。