如果你安装了navicat,你可以分别连接源和目标mongodb,然后直接右击拷贝、黏贴database就行。参考:blog.csdn.net/HellHellNo/…
本文介绍在linux机器用命令行的方式进行数据迁移。
安装工具
yum install mongodb-org-shell-4.0.19-1.el7.x86_64
yum install mongodb-org-tools-4.0.14-1.el7.x86_64
使用mongodump命令从源端dump数据,然后使用mongostore命令向目的数据库store数据就ok啦! 命令参数配置参考官网文档:docs.mongodb.com/database-to…
遇到的问题
- mongodb密码中包含特殊字符,脚本报错
解决方案: 将含有特殊字符的密码加上单引号(不能用双引号)
- 报错"Failed: error connecting to db server: server returned error on SASL authentication step: Authentication failed."
解决方法: 添加--authenticationDatabase=admin
最终执行的命令
mongodump -h host_src:27017 -d database_name1 -o ~/mongodata/ --username=mongouser --password='xxxxxxxxx' --authenticationDatabase=admin
mongorestore -h host_dst:27017 -d database_name2 --username=mongouser --password='xxxxxxxxx' ~/mongodata/database_name1 --authenticationDatabase=admin
注:mongorestore指定的目录为mongodump指定的目录加上mongodump指定的database的名字