mongodb 在 Windows 环境下迁移数据库的问题

mongodb 是一款非常优秀的文档数据库,它的社区版本是免费的。但是 mongodb 的迁移和其他传统的关系数据库不太一样,通过官方提供的图形化的客户端工具无法备份和迁移,需要下载命令行工具进行。

首先下载命令行工具:

Download MongoDB Command Line Database Tools | MongoDB

Windows 安装后,使用管理员身份打开 cmd 命令窗口,导航到安装目录的 bin 目录下,如果是默认安装的话,应该是:C:\Program Files\MongoDB\Tools\100\bin

核心的命令有两个,mongodump 和 mongorestore。前者用于备份,后者用于恢复,两者合起来使用,就实现了数据库迁移。

备份一个数据库的命令如下:

mongodump --uri="mongodb://username:password@host:port/database" "d:/dump"

但是一定会抱错,错误信息如下:

auth error: sasl conversation error: unable to authenticate using mechanism "SCRAM-SHA-1": (AuthenticationFailed) Authentication failed.

网上众说纷纭,什么防火墙、安全配置,都不对,是因为如果 mongodb 服务器开启了用户验证,则客户端登录时,一定要指定验证的数据库,而 compass 工具是默认内置指定了验证数据库,所以不需要手动指定,而使用命令行工具时,则必须指定。把上述命令修改为

mongodump --uri="mongodb://username:password@host:port/database" "d:/dump" --authenticationDatabase=admin

命令顺利执行!!

同理,mongorestore 命令也是一样的道理。按照如下命令执行即可:

mongorestore --uri="mongodb://username:password@target_host:target_port/target_database" “d:/dump” --authenticationDatabase=admin

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值