zoukankan      html  css  js  c++  java
  • centos导入mongodb数据库

    1. 备份Mongodb(使用dump备份,一般导出到远程服务器用备份的数据,不然直接导出的话,你本地数据就全被导出了,用完还得导入)
    mongodump -h RuiyIp -d dataname -o /direname
    mongodump mongo 导出数据库命令 mongodump --help 可以查看该命令下所有的帮助
    
    -h 导出源
    -d 要导出的数据库名称
    -o 数据库要导出的位置
    在终端滚过N行之后,数据库导出完成,可以去/home/aa/dev/mongodb/data 目录下查看导出的文件,bson格式的(我导出后没有马上就看到文件,等了一会才出现的,原因不明)。

    例子:我有个数据库叫we_teach

     现在导出它。

    1.首先打开powershell输入:

    mongodump -h 127.0.0.1:27017 -d we_teach -o C:UsershmyDesktopmongoDB-database

    运行贴图:

    2.再压缩一下,因为要上传服务器,所以压缩格式:

    tar -zcvf filename.tar.gz  dirname/

    例子:

    目录是这样的:

     tar -zcvf we_teachdb.tar.gz  ./we_teach

    运行贴图:

    3.然后我使用xftp上传到服务器:

     4.然后我使用xshell连接远程服务器进行解压:

     可以看到那个红色的就是我上传的,使用tar -xzvf 文件名(direname)解压

    解压结果:

     5.然后ls查看当前目录的解压后有没有多了文件,的确多了下面那个绿色高亮区域的文件

    2. 恢复使用:mongorestore 命令
    mongorestore -h dbhost -d dbname --dir dbdirectory
    
    参数说明:
    -h: MongoDB所在服务器地址
    -d: 需要恢复的数据库实例,例如:test,当然这个名称也可以和备份时候的不一样,比如test2
    –dir: 恢复数据所在位置,例如:/home/mongodump/itcast/
    –drop: 恢复的时候,先删除当前数据,然后恢复备份的数据。就是说,恢复后,备份后添加修改的数据都会被删除,慎用!

    我的数据库叫we_teach,放在我的we_teachdb下

     

     

     所以我上传到服务器的文件使用语法:

    mongorestore -h 127.0.0.1 -d we_teach --dir we_teachdb/we_teach

    意思就是,恢复我的本机电脑,数据库叫we_teach,使用当前目录下名为we_teachdb/we_teach下的数据进行导入恢复

    注:若你本机电脑没有we_teach数据库,mongo会自动创建。

    开始解压:

     

     结果非常漂亮,不得不说写这玩意的大神真牛逼。

    进入mongo可以看到我的数据库已经成功导入:

     唉,其实导入这个数据还不难,难的是之前配置环境对我这个小白挺难受的,最后mongodb安装卸载了好多遍,我觉得有一个原因应该是我的宝塔之前安装过,现在手动安装,然后再手动配置,最后搞得端口冲突,把宝塔的mongo卸载了还不能用,最后搞得两边都不能用了,直接重置服务器。

    官方版主文档:

    [root@localhost mongodb]# ./bin/mongorestore --help  
     usage: ./bin/mongorestore [options] [directory or filename to restore from]  
     options:  
       --help                  produce help message  
       -v [ --verbose ]        be more verbose (include multiple times for more   
                               verbosity e.g. -vvvvv)  
       --version               print the program s version and exit  
       -h [ --host ] arg       mongo host to connect to ( <set name>/s1,s2 for sets)  
       --port arg              server port. Can also use --host hostname:port  
       --ipv6                  enable IPv6 support (disabled by default)  
       -u [ --username ] arg   username  
       -p [ --password ] arg   password  
       --dbpath arg            directly access mongod database files in the given   
                               path, instead of connecting to a mongod  server -   
                               needs to lock the data directory, so cannot be used   
                               if a mongod is currently accessing the same path  
       --directoryperdb        if dbpath specified, each db is in a separate   
                               directory  
       --journal               enable journaling  
       -d [ --db ] arg         database to use  
       -c [ --collection ] arg collection to use (some commands)  
       --objcheck              validate object before inserting  
       --filter arg            filter to apply before inserting  
       --drop                  drop each collection before import  
       --oplogReplay           replay oplog for point-in-time restore  
       --keepIndexVersion      don't upgrade indexes to newest version  
    详细参数说明:
    -h:指明数据库宿主机的IP
    -u:指明数据库的用户名
    -p:指明数据库的密码
    -d:指明数据库的名字
    -c:指明collection的名字
    -o:指明到要备份的文件名
    -q:指明备份数据的过滤条件
    3. 导入(一般指定用于指定导入的表)
    mongoimport -d my_mongodb -c user user.dat
    参数说明:
    
    -d 指明使用的库, 本例中为” my_mongodb”
    
    
    -c 指明要导入的表, 本例中为”user”
    可以看到导入数据的时候会隐式创建表结构

     但是我使用以上命令导入json文件时出错,

    需要使用以下命令才可以导入:

    mongoimport -d we_teach -c article_agrees --jsonArray --file article_agrees.json 

    4. 导出(这个我还没用过)
    
    
    mongoexport -d my_mongodb -c user -o user.dat
    参数说明:
    
    -d 指明使用的库, 本例中为” my_mongodb”
    -c 指明要导出的表, 本例中为”user”
    -o 指明要导出的文件名, 本例中为”user.dat”
    从上面可以看到导出的方式使用的是JSON 的样式
    
    

    先记录到这里吧!

     
    C:UsershmyDesktopmongoDB-database
    穷则独善其身,达则兼济天下……
  • 相关阅读:
    转发:招聘一个靠谱的 iOS
    转发:经典面试题
    APP上架证书无效:解决
    转发:Xcode插件
    Alcatraz:插件管理
    类似禅道的多条件搜索功能,比如或者并且和模糊查询和指定查询,见下图吧
    关于angularjs中,数据模型被改变,页面不刷新的解决办法
    angluar1+ionic详情页返回在原来的位置(缓存数据和页面高度)
    unable to resolve module react-native-gesture-handler from
    解决React Native:Error: Cannot find module 'asap/raw'
  • 原文地址:https://www.cnblogs.com/hmy-666/p/14533309.html
Copyright © 2011-2022 走看看