mongodb数据备份用mongorestore恢复后没有数据
两台机子,一台机子是windows server 2008,另一台机子centos 6.4,要把位于windows 机子上的数据备份出来,然后还原到centos上。
假设windows server 2008的机器ip为,192.168.1.59,centos机器的ip为192.168.1.58.两台机子mongodb的访问端口同为27117.两台数据用同样的用户名和密码(实际上可以不同)。操作都在windows server 2008机器的cmd命令行下运行。
首先备份数据:
mongodump -h 192.168.1.59:27117 -u mongoadmin -p 123456 --authenticationDatabase webshop -d webshop -o E:\mongobak\databak
数据备份出来后再用
mongorestore -h 192.168.1.58:27117 -u mongoadmin -p 123456 -d webshop --drop --directoryperdb E:\mongobak\databak\webshop
把备份出来的数据还原到centos那台机器上。
用mongo 192.168.1.58:27117 -u mongoadmin -p 123456 --authenticationDatabase webshop访问数据库,db.products.find(),发现products集合中没有任何文档。
最后分析后发现了原因是用户mongoadmin在192.168.1.58 webshop的数据库上没有写入权限,用如下命令:
use webshop;
db.grantRolesToUser(
"mongoadmin",
[
{ role: "readWrite", db: "webshop" }
]
)
给mongoadmin读写权限角色。
再次用mongorestore -h 192.168.1.58:27117 -u mongoadmin -p 123456 -d webshop --drop --directoryperdb E:\mongobak\databak\webshop还原数据,再次用mongo 192.168.1.58:27117 -u mongoadmin -p 123456 --authenticationDatabase webshop,访问webshop数据库,db.products.find(),发现products集合中已有文档。
总结:数据库备份用户要有dbAdmin角色权限,数据还原用户要有dbAdmin,readWrite角色权限。
近期文章
- python:object()函数
- mongodb数据备份用mongorestore恢复后没有数据
- mongodb roles
- windows2003远程桌面连接蓝屏,不显示桌面图标的解决办法。
- centos下apache gb2312页面中文乱码解决办法
- 设置mongodb做为windows服务自动运行
- windows2008中IIS7配置fastcgi+php
- 服务器连接远程桌面后无法看到桌面的解决办法
- iis日志导入sql server数据库
- 7-zip命令行参数详解
- iptables如何指定一个范围内的IP地址或端口
- mongod2.6服务无法启动,权限问题
- CentOS下编译安装mysql 5.1,支持中文(GBK)
- ERROR 1045 (28000): Access denied for user root@localhost(using password: YES)
- CentOs删除文件夹下所有文件及文件夹并保留该文件夹
- CentOS 6.4: Make Command not Found
- CentOS下安装成功mysql的提示信息
- mysql configure编译完成后的提示信息
- CentOS上安装gcc的方法
- MongoDB创建root角色用户(超级管理员)