• 官网下载文件

  • 解压,配置etc,mongoldb.conf文件

    storage:
      journal:
        enabled: true
      dbPath: "/Users/zhanglu/Desktop/lu/tool/dev/mongodb/mongodb-macos-x86_64-4.4.3/data/db/"
    systemLog:
      destination: file
      path: "/Users/zhanglu/Desktop/lu/tool/dev/mongodb/mongodb-macos-x86_64-4.4.3/log/mongod.log"
      logAppend: true
    net:
      bindIp: "0.0.0.0"
      port: 27017
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
  • 测试环境

    启动:./bin/mongod -f ./etc/mongod.conf 
    客户端连接:./bin/mongo
    退出关闭进程:ps -ef|grep mongod 
    一切就绪即可进行下一步
    
    1
    2
    3
    4
  • 配置文件

    主:
    storage:
      journal:
        enabled: true
      dbPath: "/Users/zhanglu/Desktop/lu/tool/dev/mongodb/mongodb-macos-x86_64-4.4.3/data/db/"
    systemLog:
      destination: file
      path: "/Users/zhanglu/Desktop/lu/tool/dev/mongodb/mongodb-macos-x86_64-4.4.3/log/mongod.log"
      logAppend: true
    net:
      bindIp: "0.0.0.0"
      port: 27017
    replication:
      replSetName: "lu"
    
    从1:
    storage:
      journal:
        enabled: true
      dbPath: "/Users/zhanglu/Desktop/lu/tool/dev/mongodb/mongodb-macos-x86_64-4.4.3/data/db_s1/"
    systemLog:
      destination: file
      path: "/Users/zhanglu/Desktop/lu/tool/dev/mongodb/mongodb-macos-x86_64-4.4.3/log/s1.log"
      logAppend: true
    net:
      bindIp: "0.0.0.0"
      port: 27018
    replication:
      replSetName: "lu"
    
    从2:
    storage:
      journal:
        enabled: true
      dbPath: "/Users/zhanglu/Desktop/lu/tool/dev/mongodb/mongodb-macos-x86_64-4.4.3/data/db_s2/"
    systemLog:
      destination: file
      path: "/Users/zhanglu/Desktop/lu/tool/dev/mongodb/mongodb-macos-x86_64-4.4.3/log/s2.log"
      logAppend: true
    net:
      bindIp: "0.0.0.0"
      port: 27019
    replication:
      replSetName: "lu"
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
  • 启动

    ./bin/mongod -f ./etc/mongod.conf 
    ./bin/mongod -f ./etc/s1.conf 
    ./bin/mongod -f ./etc/s2.conf 
    
    客户端连接集群:
    ./bin/mongo
    
    1
    2
    3
    4
    5
    6
  • 分片集群认证设置

    • 在其中一台机器上生成keyfile

      • cd /mongodb文件夹啊
        在当前目录下生成文件:openssl rand -base64 753  > keyfile
        sudo chmod 400 keyfile
        
        1
        2
        3
    • 创建管理员账号

      • use admin
        db.createUser({user: "root",pwd: "Showlu18",roles: [ { role: "root", db: "admin" } ]})
        db.auth("root", "Showlu18")
        
        use config
        db.createUser({user: "root",pwd: "Showlu18",roles: [ { role: "root", db: "admin" } ]})
        db.auth("root", "Showlu18")
        
        1
        2
        3
        4
        5
        6
        7
    • 成功之后,关闭服务,修改配置文件

      主:
      storage:
        journal:
          enabled: true
        dbPath: "/Users/zhanglu/Desktop/lu/tool/dev/mongodb/mongodb-macos-x86_64-4.4.3/data/db/"
      systemLog:
        destination: file
        path: "/Users/zhanglu/Desktop/lu/tool/dev/mongodb/mongodb-macos-x86_64-4.4.3/log/mongod.log"
        logAppend: true
      net:
        bindIp: "0.0.0.0"
        port: 27017
      replication:
        replSetName: "lu" #需要监控的数据库
      security:
        authorization: enabled	#开启监控
        keyFile: "/Users/zhanglu/Desktop/lu/tool/dev/mongodb/mongodb-macos-x86_64-4.4.3/keyfile"
      
      从1:
      storage:
        journal:
          enabled: true
        dbPath: "/Users/zhanglu/Desktop/lu/tool/dev/mongodb/mongodb-macos-x86_64-4.4.3/data/db_s1/"
      systemLog:
        destination: file
        path: "/Users/zhanglu/Desktop/lu/tool/dev/mongodb/mongodb-macos-x86_64-4.4.3/log/s1.log"
        logAppend: true
      net:
        bindIp: "0.0.0.0"
        port: 27018
      replication:
        replSetName: "lu"
      security:
        authorization: enabled
        keyFile: "/Users/zhanglu/Desktop/lu/tool/dev/mongodb/mongodb-macos-x86_64-4.4.3/keyfile"
      
      从2:
      storage:
        journal:
          enabled: true
        dbPath: "/Users/zhanglu/Desktop/lu/tool/dev/mongodb/mongodb-macos-x86_64-4.4.3/data/db_s2/"
      systemLog:
        destination: file
        path: "/Users/zhanglu/Desktop/lu/tool/dev/mongodb/mongodb-macos-x86_64-4.4.3/log/s2.log"
        logAppend: true
      net:
        bindIp: "0.0.0.0"
        port: 27019
      replication:
        replSetName: "lu"
      security:
        authorization: enabled
        keyFile: "/Users/zhanglu/Desktop/lu/tool/dev/mongodb/mongodb-macos-x86_64-4.4.3/keyfile"
      
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      21
      22
      23
      24
      25
      26
      27
      28
      29
      30
      31
      32
      33
      34
      35
      36
      37
      38
      39
      40
      41
      42
      43
      44
      45
      46
      47
      48
      49
      50
      51
      52
      53
    • 重启集群

      ./bin/mongod -f ./etc/mongod.conf 
      ./bin/mongod -f ./etc/s1.conf 
      ./bin/mongod -f ./etc/s2.conf 
      
      1
      2
      3
    • 连接集群

      客户端连接:mongo --host 127.0.0.1 --port 27017 -u "root" -p'Showlu18' --authenticationDatabase "admin"
      客户端连接:
      	mongo --host 127.0.0.1  
      	use admin  
      	db.auth("root", "111111")
      
      1
      2
      3
      4
      5
    • 连接完毕,可以试试命令,是否需要认证,不需要说明成功连接

      例如以下命令:
      show users
      show dbs
      
      1
      2
      3
  • 配置集群

    步骤一:
    use lu
    
    步骤二:
    cfg={_id:"lu",members:[{_id:0,host:'127.0.0.1:27017',priority:2},{_id:1,host:'127.0.0.1:27018',priority:1},{_id:2,host:'127.0.0.1:27019',arbiterOnly:true}]}
    
    步骤三:
    rs.initiate(cfg)
    
    1
    2
    3
    4
    5
    6
    7
    8
  • 测试

    一个客户端开启监视器:db.watch([],{maxAwaitTimeMS:60000})
    一个客户端对选择的database进行操作,观察日志输出
    db.col.insert({"name":"测试01"})
    db.col.update({"name":"测试01"},{$set:{"name": "测试02"}})
    db.col.remove({"name" : "测试02"})
    
    1
    2
    3
    4
    5
更新时间: 1/29/2023, 2:28:25 PM