Loading

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:\Users\hmy\Desktop\mongoDB-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:\Users\hmy\Desktop\mongoDB-database
posted @ 2021-03-14 17:46  兜里还剩五块出头  阅读(612)  评论(0编辑  收藏  举报