查看: 87|回复: 0

mongodb数据迁移详细步骤(亲测成功!)

[复制链接]

0

主题

0

回帖

0

积分

积极分子

金币
0
阅读权限
220
精华
0
威望
0
贡献
0
在线时间
0 小时
注册时间
2008-11-5
发表于 2025-1-7 08:30:05 | 显示全部楼层 |阅读模式

mysql进行数据迁移,最简单的不过是导出sql,然后在运行sql,数据也自然迁移过去了。

可是mongodb里,我们存储的是文件,是怎么做到的呢,当我在翻阅网上博客的时候,并没有发现有这方面的顾虑。

当我本地自测过程中(本地一个数据库的gridFS下的文件,迁移到另一个数据库时),有权限方面的问题,比如我的账号好像只能读取固定某一个数据库下的数据,

我是嫌麻烦,所以弄了一个超级管理员账号,当然如果你的账号能够访问数据库,可以不需要创账号了,直接向下翻到正文。

如下图,2数据库,我可以正常上传文件,但是新建的demo1数据库,提示我无权限。

我干脆就新建了一个超级管理员账户,在目录窗口输入cmd

输入mongo,再输入use admin,

然后输入db.createUser({user:"usename",pwd:"password",roles:[{role:"root",db:"admin"}]})

记得修改usename为你的用户名,password为你的密码。

能够看到创建成功,然后我本地试了这个账号,在两个数据库都可以上传文件。

本地和服务器上的账号密码是一样的,最终实现本地数据库的数据迁移到云服务器上的数据库。

正文开始,开始迁移。我测试的使用的是windows

需要下载 Download MongoDB Command Line Database Tools | MongoDB 

等下会使用到,下载安装到一个目录下

再配置到环境变量path下

准备工作完成,只需要两步命令即可!

第一步:备份到本地!

第二步:恢复到服务器!

第1步,先备份到本地

cmd打开窗口

 mongodump --db demo1 --out C:\Users\Administrator\Desktop\mongodb迁移 -u superAdmin -p 123456 --authenticationDatabase admin

解释:demo1:是想要备份的数据库名称 

           C:\Users\Administrator\Desktop\mongodb迁移:是把数据库备份到本地地址

           superAdmi:是我的账号名称

           123456:是我的账号密码

第一步完成

第2步,把导出的这个demo1文件夹拷贝到目标服务器上,我的目标服务器也是windows 同样需要下载Download MongoDB Command Line Database Tools | MongoDB,前面下载配置流程同理即可。

在目标服务器,cmd窗口,输入
mongorestore --db target C:\Users\Administrator\Desktop\demo1 -u superAdmin -p 123456 --authenticationDatabase admin

解释:target:是目标服务器的mongodb下的数据库(也就是想把数据迁移到哪个库里)

          C:\Users\Administrator\Desktop\demo1:告诉目标服务器,从哪个文件夹获取数据(也就是先前导出的文件夹拷贝到云服务器某一目录下)

           superAdmin:目标服务器的mongodb 用户的账号名称

           123456:目标服务器的mongodb 用户的账号密码

目标服务器上的操作

最后navicat 连接服务器上的mongodb,能够看到迁移的数据。

总结

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

相关侵权、举报、投诉及建议等,请发 E-mail:qiongdian@foxmail.com

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部