mongo数据库之数据的导出(mongoexport)、导入(mongoimport)、备份(mongodump)、恢复(mongorestore))

MongoDB数据导出、导入、备份与恢复
博客介绍了MongoDB的数据操作,包括使用mongoexport导出数据、mongoimport导入数据、mongodump备份数据和mongorestore恢复数据,且各项操作均成功。同时提醒数据库迁移需用备份和恢复语法,开启验证登录时无法直接备份恢复,会报错并给出解决方案。

1,导出工具:mongoexport

# 语法:
mongoexport -d "数据库名" -c "表名" -o "要保存的文件名" --type "指定保存的数据文件类型"(json/csv) -f "指定要导出的字段"

参数说明:

    -d :数据库名

    -c :collection名

    -o :输出的文件名

    --type : 输出的格式,默认为json

    -f :输出的字段,如果-type为csv,则需要加上-f "字段名"


注意:默认导出type类型为json,如果指定类型为csv,主要指定-f指定字段


# 例:把familyTv数据库中的DingData表的数据导出到当前位置,并保存到DingData.json中
mongoexport -d familyTv -c DingData -o DingData.json

效果如下:(导出成功)

 

 2,数据导入:mongoimport

# 语法:

mongoimport -d "指定要被导入数据的数据库名" -c "指定表名" --file "指定被导入的文件名" --headline  
 --type "指定类型" -f "指定字段"

参数说明:

    -d :数据库名
    
    -c :collection名
    
    --type :导入的格式默认json
    
    -f :导入的字段名
    
    --headerline :如果导入的格式是csv,则可以使用第一行的标题作为导入的字段

    --file :要导入的文件

# 例:
这里我把DingData表删除了,因为我已经导出了数据,这里用于验证是否导入成功
mongoimport -d familyTv -c DingData --file DingData.json

效果如下:(导入成功)

 

 3,数据备份:mongodump

# 语法:

mongodump -h "数据库所在ip地址" -d "数据库名称" -o "保存文件的目录"

参数说明:

    -h: MongDB所在服务器地址,例如:127.0.0.1,当然也可以指定端口号:127.0.0.1:27017

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

    -o: 备份的数据存放位置,例如:/home/mongodump/,当然该目录需要提前建立,这个目录里面存放该数据库实例的备份数据。


例:
# 将本地数据库familyTv的数据保存到当前目录下
mongodump.exe -h 127.0.0.1:27017  -d familyTv -o ./

效果如下:(备份成功)

 

4,数据恢复:mongorestore

# 语法:

mongorestore -h "数据库所在ip" -d "要保存数据的数据库名称"  --dir "存放数据的目录"

参数或名:

    -h: MongoDB所在服务器地址

    -d: 需要恢复的数据库实例,例如:test,当然这个名称也可以和备份时候的不一样,比如test2

    --dir: 备份数据所在位置,例如:/home/mongodump/

    --drop: 恢复的时候,先删除当前数据,然后恢复备份的数据。就是说,恢复后,备份后添加修改的数据都会被删除,慎用!

# 例:
 mongorestore -h 127.0.0.1 -d familyTv --dir familyTv

效果如下:(备份成功)

注意!!!!: 数据库迁移需要使用备份(mongodump)与恢复(mongorestore)语法,如果数据库没有开启权限验证,则直接使用命令即可;

如果开启了验证登录,是无法直接备份和恢复数据库的,报如下错误:error reading database: command listCollections requires authentication

解决方案

  1. 添加:-u <username> -p=<password>
  2. 添加:--authenticationDatabase admin

 
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值