我正在运行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访问服务器。
答案 0 :(得分:2)
尝试db.copyDatabase(fromdb,todb,fromhost,username,password)。正如手册所说:http://docs.mongodb.org/manual/reference/method/db.copyDatabase/