mongodb复制集搭建

服务器

OS:CentOS7
内存:16G
硬盘:6T
IP:192.168.1.2/192.168.1.51/192.168.1.52/192.168.1.53
其中192.168.1.2 为仲裁节点,不存储数据。

搭建过程

  1. 创建mongo用户
    # groupadd admin
    # useradd -g admin mongo
    # passwd mongo
  2. 下载mongo安装包
    $ wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-3.6.3.tgz
  3. 解压并重命名
    $ tar -zxvf mongodb-linux-x86_64-rhel70-3.6.3.tgz
    $ mv mongodb-linux-x86_64-rhel70-3.6.3 mongodb
  4. 创建$HOME/data$HOME/logs$HOME/conf$HOME/.local/bin三个目录
    $ mkdir data
    $ mkdir conf
    $ mkdir logs
  5. 创建配置文件
    $ vi conf/mongodb.conf
# 启动端口
port=27017
# 数据存放目录
dbpath=/home/mongo/data
# 指定日志文件
logpath=/home/mongo/logs/mongodb.log
# 日志以追加方式保存
logappend=true
# 启用日志
journal=true
# 指定pid文件
pidfilepath=/home/mongo/conf/mongodb.pid
# 后台启动
fork=true
# 最大连接数
maxConns=5000
# 允许任何IP连接
bind_ip=0.0.0.0
# 不开启验证
auth=false
# 集群名称
replSet=wd-mongodb
  1. 创建启动脚本
    vi .local/bin/start
#!/bin/bash
echo "正在启动mongodb服务..."
$HOME/mongodb/bin/mongod -f $HOME/conf/mongodb.conf
  1. 创建停止脚本
    $ vi .local/bin/stop
#!/bin/bash
echo "正在停止mongodb服务..."
$HOME/mongodb/bin/mongod -f $HOME/conf/mongodb.conf --shutdown
  1. 创建重启脚本
#!/bin/bash
$HOME/.local/bin/stop
$HOME/.local/bin/start

修改脚本文件权限:
chmod 755 .local/bin/*

  1. 配置开机启动
[Unit]
Description=mongodb service
After=network.target

[Service]
Type=forking
PIDFile=/home/mongo/conf/mongodb.pid
ExecStart=/home/mongo/.local/bin/start
ExecStop=/home/mongo/.local/bin/stop
ExecReload=/home/mongo/.local/bin/restart
User=mongo
Group=admin

[Install]
WantedBy=multi-user.target

集群配置

rs.initiate({_id:"wd-mongodb", members:[{_id: 0, host:"192.168.1.51:27017"}]})
rs.add("192.168.1.52:27017")
rs.add("192.168.1.53:27017")
rs.addArb("192.168.1.2:27017")

复制集开启用户验证:

  1. 创建一个超级用户root和普通用户dev
db.createUser({user: "root", pwd: "root@123", roles: [{role: "root", db: "admin"}]});

db.createUser({user: "dev", pwd: "dev123", roles: [{role: "readWriteAnyDatabase", db: "admin"}]});
  1. 修改mongodb.conf文件,添加:keyFile=/home/mongo/conf/.keyfile
# 启动端口
port=27017
# 数据存放目录
dbpath=/home/mongo/data
# 指定日志文件
logpath=/home/mongo/logs/mongodb.log
# 日志以追加方式保存
logappend=true
# 启用日志
journal=true
# 指定pid文件
pidfilepath=/home/mongo/conf/mongodb.pid
# 后台启动
fork=true
# 最大连接数
maxConns=5000
# 允许任何IP连接
bind_ip=0.0.0.0
# 开启验证
auth=true
keyFile=/home/mongo/conf/.keyfile
# 集群名称
replSet=wd-mongodb
  1. 创建.keyfile文件
    $ openssl rand -base64 100 > /home/mongo/conf/.keyfile
  2. .keyfilemongodb.conf文件复制到所有的节点
  3. 重启mongodb
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容