如何在mongodb中从远程服务器复制受密码保护的数据库?

时间:2014-07-16 19:20:50

标签: mongodb

我正在运行mongodb 2.4.8并需要从远程服务器复制数据库。服务器已启用auth,并且具有对数据库具有特权的用户。我试过了copydb,但它没有用。我猜它失败了,因为远程服务器使用auth与基于角色的用户结合(在文档的身份验证部分提到)。

 host = "myhost.com"
 mynonce = db.runCommand( { copydbgetnonce : 1, fromhost: host } ).nonce
 username = "myuser"
 password = "mypassword"
 password_hash = hex_md5(mynonce + username + hex_md5(username + ":mongo:" + password))
 db.runCommand({ 
   copydb: 1, 
   fromdb: "test", 
   todb: "test", 
   fromhost: host, 
   username: username, 
   key: password_hash 
 })
 # output: { "ok" : 0, "errmsg" : "" }
 # but nothing really gets copied

我还有其他选择吗?我更喜欢一个可以在mongo shell中工作的解决方案,因为我没有ssh访问服务器。

1 个答案:

答案 0 :(得分:2)

尝试db.copyDatabase(fromdb,todb,fromhost,username,password)。正如手册所说:http://docs.mongodb.org/manual/reference/method/db.copyDatabase/