zoukankan      html  css  js  c++  java
  • MongoDB_4.4 安装和配置

    MongoDB4.xxx 安装与配置

    1、社区版 下载地址 www.mongodb.com/download-center/community ;
    "install mongoDB compass" 不勾选;勾选后悔安装这个数据库管理工具;可以自定义目录;其他默认;

    2、配置环境变量
    安装目录下的 bin 目录 ; 如:C:z_MongoDBin;配置到系统环境变量中(控制面板系统和安全系统高级系统设置环境变量;
    会自动添加到服务中了;重启运行命令 services.msc(window10)打开服务界面,此时已经自动添加到系统服务里面了,每次开机自动重启

    3、创建超级管理员账户

    use admin
    db.createUser({
        user:'admin',
        pwd:'123456',
        roles:[{role:'root',db:'admin'}]
    })
    删除超级账户:db.dropUers('admin');
    
    C:z_MongoDBinmongod.cfg 找到这个配置文件  放开 security表示开启权限验证
    这个文件有严格的格式,注意空格(1053错误,无法重启)
    security:
       authorization: enabled
    
    注意:authorization 冒号 后面有个空格 去掉或多加一个空格都会报错;
    

    4、用超级管理员账户连接数据库(用命令行)
    mongo admin -u 用户名-p 密码
    mongo 192.168.1.200:27017/test -u user -p password
    其他链接方式:const url = 'mongodb://admin:123456@localhost:27017/';

    5、使用超级管理员登录后,给某个数据库单独创建用户名,密码,及权限

    use 数据库名
    db.createUser({
       user:"eggadmin",
       pwd:"123456",
       roles:[{role:"dbOwner",db:"eggcms"}] 
    })
    
    

    6、数据库角色分类
    (1)数据库用户角色:read、readWrite;
    (2)数据库管理角色:dbAdmin、dbOwner、userAdmin;
    (3)集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager;
    (4)备份恢复角色:backup、restore;
    (5)所有数据库角色: readAnyDatabase、readWriteAnyDatabase、 userAdminAnyDatabase、dbAdminAnyDatabase
    (6)超级用户角色:root

    7、基本管理命令
    1、show users; // 查看当前库下的用户
    2、db.dropUser("eggadmin") // 删除用户
    3、db.updateUser("admin",{pwd:"password"}); // 修改用户密码
    4、db.auth("admin","password"); // 密码认证 (数据库设置了密码,要认证后才能连接成功)
    5、show tables // 列出该库下所有表

    8、导出与恢复
    MongoDB 4.4版本 之后 MongoDB数据库工具现在与MongoDB服务 分开发布 需要单独安装
    1. 下载地址
    2. windwos 下载后解压,配置到环境变量 path 中,然后就可以使用 mongodump、 mongorestore、 mongoimport、 mongoexport 命名来备份了
    3. 在导入其他人的库后,应该清空 -->该库下的用户 -->再创建用户后再链接;

    备份单个表
    mongodump -u  superuser -p 123456  --port 27017 --authenticationDatabase admin -d myTest -c d -o /backup/mongodb/myTest_d_bak_201507021701.bak
    
    备份单个库
    mongodump  -u  superuser -p 123456 --port 27017  --authenticationDatabase admin -d myTest -o  /backup/mongodb/
    
    备份所有库
    mongodump  -u  superuser -p 123456 --authenticationDatabase admin  --port 27017 -o /root/bak 
    
    备份所有库推荐使用添加--oplog参数的命令,这样的备份是基于某一时间点的快照,只能用于备份全部库时才可用,单库和单表不适用:
    mongodump -h 127.0.0.1 --port 27017   --oplog -o  /root/bak 
    
    同时,恢复时也要加上--oplogReplay参数,具体命令如下(下面是恢复单库的命令):
    mongorestore  -d swrd --oplogReplay  /home/mongo/swrdbak/swrd/
    
    
    恢复单个库:
    mongorestore  -u  superuser -p 123456 --port 27017  --authenticationDatabase admin -d myTest   /backup/mongodb/
    
    恢复所有库:
    mongorestore   -u  superuser -p 123456 --port 27017  --authenticationDatabase admin  /root/bak
    
    恢复单表
    mongorestore -u  superuser -p 123456  --authenticationDatabase admin -d myTest -c d /backup/mongodb/myTest_d_bak_201507021701.bak/myTest/d.bson
    
    注意:
          1.mongorestore恢复数据默认是追加,如打算先删除后导入,可以加上--drop参数,不过添加--drop参数后,会将数据库数据清空后再导入,如果数据库备份后又新加入了数据,也会将新加的数据删除,它不像mysql有一个存在的判断
          2.mongodump在mongo关闭时,也是可以备份的,不过需要指定数据目录,命令为:mongodump  --dbpath  /data/db
    
    

    9、mongodump与mongoexport的区别:

          1. mongodump导出的是bson格式,是二进制形式,不过可以使用mongo自带的bsondump命令查看里面的数据,而mongoexport导出的则是文本,可以是csv、json格式。    
          2. JSON可读性强但体积较大,BSON则是二进制文件,体积小但对人类几乎没有可读性。
          3. 在一些mongodb版本之间,BSON格式可能会随版本不同而有所不同,所以不同版本之间用mongodump/mongorestore可能不会成功,具体要看版本之间的兼容性。
             当无法使用BSON进行跨版本的数据迁移的时候,使用JSON格式即mongoexport/mongoimport是 一个可选项。跨版本的mongodump/mongorestore个人并不推荐,实在要做请先检查文档看两个版本是否兼容(大部分时候是的)
          4. JSON虽然具有较好的跨版本通用性,但其只保留了数据部分,不保留索引,账户等其他基础信息。使用时应该注意。
    
  • 相关阅读:
    java之SFTP上传下载
    java之FTP上传下载
    JUnit单元测试%MODULE_WORKING_DIR%' does not exist
    MySQL 在线DDL "gh-ost"
    MySQL 主从复制错误1837
    <高性能MySQL> 阅读笔记
    Redis cluster 4.0.9 迁槽不影响读写
    MySQL left join 用法与实例
    Linux 日期 date +%F-%T-%N
    MySQL 使用infobin查找binlog中大事务
  • 原文地址:https://www.cnblogs.com/kgwei520blog/p/13652299.html
Copyright © 2011-2022 走看看