安装

1.打开链接 https://www.mongodb.com/download-center/community 选择合适的版本 ![image.png](https://cos.easydoc.net/85829285/files/k9i95eer.png) 复制生成的链接。 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,则表示成功了。