zoukankan      html  css  js  c++  java
  • mongo数据库的简单使用

    docker 安装 mongodb

    1. docker pull mongo: 4.0   # 4.0为mongo版本

    2. docker run -p 27017:27017  -v /data/mongo:/data/db -e MONGO_INITDB_ROOT_USERNAME=admin -e MONGO_INITDB_ROOT_PASSWORD=password --name mongodb04 mongo:4.0

    -v : /data/mongo:/data/db 挂载目录  本地目录:/data/db

    -d:后台运行

    -e: MONGO_INITDB_ROOT_USERNAME 添加mongodb root权限用户的用户名

    -e: MONGO_INITDB_ROOT_PASSWORD 添加mongodb root权限用户的密码

    -p: 镜像启用端口:镜像映射端口

    --name: 为该镜像起一个别名(不可重名)

     

    查询数据库:  show dbs

    进入数据库: use MYDB

    查询数据库中表: show tables

    在mongo中创建新的用户 并赋予相应权限:

    db.createUser({

    user:<name_string>,                   #字符串

    pwd:<password_string>, #字符串

    roles:[{role:<role_name>,db:<db_name>}]     #数组+对象

    })

    user文档字段介绍:
        user字段,为新用户的名字;
        pwd字段,用户的密码;
        cusomData字段,为任意内容,例如可以为用户全名介绍;
        roles字段,指定用户的角色,可以用一个空数组给新用户设定空角色;
        在roles字段,可以指定内置角色和用户定义的角色。

    Built-In Roles(内置角色):

    1. 数据库用户角色:read、readWrite;

    1. 数据库管理角色:dbAdmin、dbOwner、userAdmin;

    2. 集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager;

    3. 备份恢复角色:backup、restore;

    4. 所有数据库角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase

    5. 超级用户角色:root 
      // 这里还有几个角色间接或直接提供了系统超级用户的访问(dbOwner 、userAdmin、userAdminAnyDatabase)

    6. 内部角色:__system

    举例:给admin添加一个root用户

    use admin

    db.createUser({user:"admin",pwd:"123456",roles:[{role:"root",db:"admin"}]})

    mongodb.conf文件中加入 auth=true

    验证用户

    use admin

    db.auth("admin","123456")

    删除用户

    db.dropUser(<user_name>)    删除某个用户,接受字符串参数

    db.dropAllUser()             删除当前库的所有用户

    注意:  在mongo4.0版本中 配置用户认证需要在mongod.cfg中

    security:
        authorization: enabled

    重新启动服务: mongod -f "C:Program FilesMongoDBServer4.0inmongod.cfg"

    数据库迁移 :

    1. 使用mongo自带命令来进行迁移数据库,先导出集合数据再导入数据库中

      数据导出:mongoexport -d dbname -c collectionname -o filepath --type json/csv -f field

      数据导入:mongoimport -d dbname -c collectionname --file filename --headerline --type json/csv -f field

    2. 连接远程mongodb备份导入导出

      连接远程数据库:mongo -u username -p pwd host:post/database(数据库名)

      注:当该用户有相应权限时,可以查看collection==>查看集合命令:show collections

      备份导出:mongodump -h dbhost -d dbname -o dbdirectory

      备份恢复:mongorestore -h dbhost -d dbname dbdirectory

    3. 可视化工具迁移

      详细步骤:https://jingyan.baidu.com/article/63f236287e91c40208ab3d11.html

       

    迁移到阿里云上:

    #mongodump的具体命令请参考mongo的帮助文档
    mongodump -h [源MongoDb地址,比如:10.10.10.10:27017] -d [需要下载的数据库名]

    mongorestore --host [上图中查得的地址] --authenticationDatabase admin -u root

    详细步骤 :https://help.aliyun.com/document_detail/26625.html

    数据导出:

    mongoexport -d dbname -c collectionname -o filepath --type json/csv - field

    -d:数据库名

    -c:集合名称

    -o : 导出数据文件的路径

    -type : 导出数据类型,默认json

    数据导出:

    mongoimport -d dbname -c collectionname --file filename --headerline --type json/csv -f field

    -d:数据库名

    -c:集合名称

    --file : 选择导入的文件

    -type : 文件类型,默认json

    -f : 字段,type为csv是必须设置此项

    数据备份:

    mongodump -h dbhost -d dbname -o dbdirectory

    例如 : mongodump -h 127.0.0.1:17072 -d mydb -o C:Users91178 

    -h:MongDB所在服务器地址,例如:127.0.0.1

    -d:需要备份的数据库实例

    -o:备份的数据存放目录,系统自动在转储目录下建立一个备份的数据库名称的目录,这个目录里面存放该数据库实例的备份数据

    数据库恢复:

    mongorestore -h dbhost -d dbname dbdirectory

    例如:mongorestore -h 127.0.0.1:17072 -d mydb  Users91178dncloud

    (在网上搜索到的都是 mongorestore -h dbhost -d dbname  -directoryperdb  dbdirectory)

    -h:MongoDB中的所在服务器地址

    -d:需要恢复的数据库实例

    -directoryperdb:备份数据所在位置

     

     

    数据备份恢复实例:

     

    1.首先在阿里云服务器上备份mongodb的数据(将阿里云服务器的数据库数据备份成JSON文件)

    mongodump -h 127.0.0.1 -d FbGameData -o /usr/

    2.查看备份的文件(查看备份成功的文件夹内容)

    cd /usr/FbGameData

    3.将备份文件夹打包压缩

    tar -zcvf FbGameData.tar.gz FbGameData

    4.本地SCP拉取服务器备份文件压缩包 (跨主机传输文件)

    scp root@47.92.215.62:/usr/FbGameData.tar.gz ./

    5.解压缩(省略)然后恢复数据(前提是要在本地创建同名数据库)

    mongorestore -h 127.0.0.1 -d FbGameData  ./FbGameData /

    注意 在mongod.conf 中开启用户认证后, 如果不加--authenticationDatabase admin 会报认证错误

      1. mongodump --port=17072 -uadmin -p123456 --db=dncloud -o C:Users91178 --authenticationDatabase admin

        mongorestore --port=17072 -uadmin -p123456 -dmydb  Users91178dncloud --authenticationDatabase admin

  • 相关阅读:
    python爬虫笔记(3-1)re模块
    python爬虫笔记(2-2)xpath解析实例
    python爬虫笔记(2-1)Xpath解析
    python爬虫笔记(1-2)requests模块实例
    python爬虫笔记(1-1)requests模块:请求数据获取响应内容
    小程序上传图片,放大,删除。
    小程序中多个echarts折线图在同一个页面的使用
    vue传值 ---- >> 子传父,$emit()
    vue传值 ---- >> 父传子,props()
    离线webpack创建vue 项目
  • 原文地址:https://www.cnblogs.com/yanhui1995/p/11910198.html
Copyright © 2011-2022 走看看