如何将meteor.js db 导入远程mongo

Posted

技术标签:

【中文标题】如何将meteor.js db 导入远程mongo【英文标题】:How-to import meteor.js db to remote mongo 【发布时间】:2015-01-30 06:17:13 【问题描述】:

我有一个使用meteor.js 开发的应用程序;因为本地没问题,我现在想把它移到我的专用服务器上; 我已经按照官方文档在服务器上安装了 mongodb 2.6; 我使用以下方法转储了本地应用程序的数据库:

mongodump -h 127.0.0.1 --port 3001 -d meteor

并将转储文件夹上传到我服务器上的 /var/www/mywebsite;

mongodb 配置为使用 auth: true;

尝试

mongorestore -h 127.0.0.1 --port 27017 -d mydbname dump/meteor

没有插入任何东西(使用 mongo shell 作为 root,我能看到的唯一数据库是本地和管理员)

我的根 mongodb 用户是在 admin db 上创建的: (我也试过):

mongorestore -h 127.0.0.1 --port 27017 --username root --password xxxxxx -d mydbname dump/meteor


    "_id" : "admin.root",
    "user" : "root",
    "db" : "admin",
    "roles" : [
        
            "role" : "userAdminAnyDatabase",
            "db" : "admin"
        
    ]

我想为新数据库创建一个 mongo 用户并恢复它; 在尝试了一些不同的事情后,我意识到我不明白该怎么做......有人可以帮忙吗?

【问题讨论】:

【参考方案1】:

从this answer到how to mongoimport data to deployed meteor app?

    从现有的 mongodb 转储数据(mongodb url: mongodb://USER:PASSWORD@DBHOST/DBNAME)

    mongodump -h DBHOST -d DBNAME -u USER -p PASSWORD
    

    这将创建一个“转储”目录,所有数据都将转到转储/DBNAME。

    获取已部署的流星应用程序的 mongodb url(即 www.mymeteorapp.com)

    meteor mongo --url METEOR_APP_URL
    

    注意:密码每分钟过期一次。

    将数据库转储数据上传到流星应用程序(使用示例流星数据库 url)

    mongorestore -u MY_REMOTE_DATABASE_USERNAME -p MY_REMOTE_DATABASE_USER_PASSWORD -h production-db-b2.meteor.io:27017 -db www_mymeteorapp_com dump/DBNAME/
    

    所有数据都应该被传输!

【讨论】:

以上是关于如何将meteor.js db 导入远程mongo的主要内容,如果未能解决你的问题,请参考以下文章

MongoDB / Meteor / 将 MONGO_URL 导出到已部署的应用程序

MongoDB / Meteor / 将 MONGO_URL 导出到已部署的应用程序

如何更新meteor.js中的Mongodb集合?

如何从Oracle 迁移到 Mongo DB

日期查询之间的 Meteor.js / MongoDB 不返回数据

使用Mongo dump 将数据导入到hive