zoukankan      html  css  js  c++  java
  • API网关Graviteeio-MongoDB安装与基本使用(二)

    API网关Graviteeio-MongoDB安装与基本使用(二)

    第二步啦,安装MongoDB了,说来可真是惭愧,这是我第一次接触MongoDB耶,之前都没有用过... 所以要好好记录一下啊

    1.先下载mongoDB的安装包

    官网地址:https://www.mongodb.com/download-center/community

    我选择的版本是: mongodb-linux-x86_64-rhel62-3.6.12.tgz

    2.开始解压安装咯(我会将文件先上传到 /app/gravitee目录下)

    tar -zxvf mongodb-linux-x86_64-rhel62-3.6.12.tgz 

    3.开始配置啦 

    先创建mongodb需要用到的数据文件 日志/配置文件/数据存储目录

    ~# mkdir -p /app/gravitee/mongodb/logs(如果没有改目录才进行创建)
    ~# mkdir -p /app/gravitee/mongodb/config(如果没有改目录才进行创建)
    ~# mkdir -p /app/gravitee/mongodb/mongodata (如果没有改目录才进行创建)

    然后就开始新建配置文件啦 mongodb.conf ,在这个配置文件里指定我们的

     cd /app/gravitee/mongodb/config

    ~# vim mongodb.conf

    dbpath=/app/gravitee/mongodb/mongodata
    logpath=/app/gravitee/mongodb/logs/gateway_mongo.log
    pidfilepath=/app/gravitee/mongodb/gateway_mongo.pid
    directoryperdb=true
    logappend=true
    #replSet=imodule
    bind_ip=0.0.0.0
    port=27017
    oplogSize=10000
    fork=true#后台运行
    noprealloc=true
    

    ~# :wq保存

    4.启动mongodb,进入mongodb的安装目录下

    ./bin/mongod -config /app/gravitee/mongodb/config/mongodb.conf

    遇到的问题:

    1.mongo命令不存在(在mongoDB的安装目录bin目录下输入mongo,提示命令不存在)

    处理方案:切换为root用户,配置环境变量,进行如下三部操作 即可 (PATH 记得指定您的mongoDB安装目录地址)

    vim  ~/.bashrc
    export PATH=/app/graviteev/mongodb/mongodb-linux/bin:$PATH
    source ~/.bashrc  

    mongoDB的安装就到此结束啦,接下来我们来讲一下mongoDB的基本使用

    关于mongoDB的基本使用

    1.在mongoDB安装目录的bin目录下输入 mongo,进入使用mongo数据库
    ~# mongo
    
    2.创建mongo数据库, 
    ~# use gravitee
    
    3.查看当前数据库
    ~# db
    
    4.为当前数据库创建用户信息
    db.createUser(
      {
        user: "gravitee",
        pwd: "gravitee111",
        roles: [ { role: "readWrite", db: "gravitee" }, "readWrite" ]
      }
    )
    5.查询当前数据库中的表信息(如果想查看集合信息,则将tables替换为 collections即可)
    ~# show tables

    6.mongoDB数据迁移,也就是数据导出+导入(我们这次的业务是将接口信息从其它环境转移到新建的环境中) 这里需要注意权限信息,注意将备份的dump目录赋权限 chmod -R 777 /app/gravitee/mongodb/dump

      6.1先登录之前存在的mongodb数据库,进入mongoDB安装目录bin文件下,看看bin目录下是否有 dump文件,如过没有的话就创建 mkdir dump

      6.2 数据导出-执行 mongodump 命令,数据会默认导入当前bin目录下的 dump文件下

      6.3 将数据下载至本地,再将数据从本地上传到新建的mongodb所在的服务器上

      6.4 进入mongdb安装目录的bin目录下,执行以下脚本将数据导入至目标数据库

    # gravitee / gravitee-am / admin :我们的数据库名
    # /app/gravitee/mongodb/dump:从源库备份出来的数据库信息
    # 10.28.11.22:27017 :当前目标数据库mongoDB的IP与端口 
    # --drop : 慎用,此参数表示先删除已有的数据库信息,再将数据全部导入。 我这里是做测试影响不大。
    mongorestore -h 10.28.11.22:27017 -d gravitee --drop  /app/gravitee/mongodb/dump/gravitee
    mongorestore -h 10.28.11.22:27017 -d gravitee-am --drop /app/gravitee/mongodb/dump/gravitee-am
    mongorestore -h 10.28.11.22:27017 -d admin --drop /app/gravitee/mongodb/dump/admin

    数据迁移详细示例:https://www.cnblogs.com/DFX339/p/12916347.html

    7.mongoDB数据查询

    ~# db.getCollection('apis').find()   #这里的apis是我的表名称,表示不加任何条件的查询
    
    ~#db.apis.find({"configuration":/10.18/})  #apis表示表名称,configuration是其中一个数据项,这里表示查询出所有的 configuration中包含 10.18的数据信息
    

      

    8.mongoDB数据替换

    8.1需要先找到要被替换的表及字段,再去匹配,这里以替换IP为例子

    db.getCollection('apis').find({'definition':/10/}).forEach( 
     function(item) {
      print("===========START==============================") 
       var tmp = String(item.definition)
       print(tmp) 
       print("=========================================") 
       tmp = tmp.replace('10.28.11.22','10.28.33.44')
       print(tmp) 
       print("============END==========================") 
     
       item.definition = tmp ;
       db.apis.save(item);
     } 
    ); 

    以上,我是想将apis表中 definition数据项中的10.28.11.22的替换为10.28.33.44 (这里执行一次只能替换一个哦,如果当前数据项中有多个10.28.11.22则需要执行多次哦, 因为这里没有repalceAll方法)

  • 相关阅读:
    Linux_搭建NFS服务(基础)
    Linux_配置主DNS服务(基础)
    Linux_配置辅助DNS服务(基础)
    Linux_配置本地YUM源(RHEL8)
    9. Mybatis plugins标签 实现分页
    27. SpringBoot 切换内嵌Servlet容器
    8. Mybatis typeHandlers标签
    63. VUEX Getters基本使用
    62. State单一状态树概念
    61 . VUEX state 和 mutations
  • 原文地址:https://www.cnblogs.com/DFX339/p/12896735.html
Copyright © 2011-2022 走看看