如何将本地Mongodb传到服务器上
概述
总体步骤分三步:dump本地数据库->上传->导入
dump本地数据库
打开cmd,将目录切换到Mongodb。我这里出现了cd之后目录不显示cd后的情况,通过dir查看cd后的文件夹中的所有内容(因为担心只是不显示切换后的目录,实际上切换成功),发现确实没有切换成功。参考网上资料后解决了。如下图
输入命令
mongodump -h 127.0.0.1 -o E:
更加完整的语句格式如下
mongodump -h IP --port 端口 -u 用户名 -p 密码 -d 数据库 -o 文件存在路径
参考了文章mongoDB数据的批量备份、还原、导入与导出_mongodump 多个表-博客
对比发现,我导出的是Mongodb中的所有数据库,dump成功的cmd界面如图
打开mongodb文件夹,能够看到已被dump的文件(红框里的四个),跟cmd界面中的一样。
上传
使用Winscp,将本地文件上传到服务器。WinSCP是一个Windows环境下使用SSH的开源图形化SFTP客户端。同时支持SCP协议。它的主要功能就是在本地与远程计算机间安全的复制文件。WinSCP可以执行所有基本的文件操作,例如下载和上传。同时允许为文件和目录重命名、改变属性、建立符号链接和快捷方式。
安装winscp指路文件传输工具WinSCP下载安装教程_winscp安装教程-博客 非常详细的文章!(大赞)
安装完成之后,左侧为本机操作界面,右侧为服务器操作界面。在左侧的目录中找到之前dump的文件,选中要传到服务器上的文件,我这里直上传folkmusic这一个数据库,所以选中它
然后点击左上角的“上传”
选择好要上传到服务器的哪个位置,我要上传到MetaFolk_mongodb文件夹里,所以就在远程目录那里填写该路径,如下图:
完成之后打开该文件夹查看,发现数据库上传成功,如下图
导入
输入下面的命令,将二进制数据库文件用mongorestore还原成名为tank的数据库
mongorestore -d tank /home/ubuntu/MetaFolk_mongodb
现在验证一下是否成功。
用mongosh连接数据库(为什么不是mongo呢?因为mongodb6.0以后废除了mongo命令,转而使用mongoshell操作)接着就是mongodb的常规操作:show dbs->use tank->show collections,然后就能看到下图:
红框中的重要命令(落了一个,在中间use tank,悲)黄色框就是我要上传的数据库中的集合。
如果希望把tank改成folkmusic,用一下db.copyDatabase()的命令,然后删除tank数据库即可(我懒得改名了,大家有需要上网一搜,步骤很简单)。
以上就是将本地mongodb数据库传到服务器的全过程,欢迎讨论和批评~