首页 > 解决方案 > 使用从 Atlas 快照恢复的 mongodb 在本地运行流星时出现问题

问题描述

我想在本地运行 localhost 流星以使用生产数据库中的数据进行调试。

我从 Mongo Atlas 下载了每日快照,将其提取到桌面,将其解压缩到名为“snap”的文件夹中

然后我运行:

mongod --dbpath snap -port 3001

我可以看到 mongodb 现在在 127.0.0.1:3001 运行。

我去本地开始我的流星项目:

meteor --settings settings.json

希望它会以某种方式神奇地在端口 3001 上获取正在运行的数据库,但它没有。

它抱怨:

=> Started proxy.                             
Unexpected mongo exit code 48. Restarting.    
=> Meteor 2.1 is available. Update this project with 'meteor update'.
Unexpected mongo exit code 48. Restarting.    
Unexpected mongo exit code 48. Restarting.    
Can't start Mongo server.                     
MongoDB exited because its port was closed, or was already
taken by a previous instance of MongoDB

Check for other processes listening on port 3001
or other Meteor instances running in the same project.

我应该怎么做才能让 Meteor 使用恢复的数据库启动项目?

标签: mongodbmeteormongodb-atlas

解决方案


假设您的数据库正在运行,您可以使用环境变量使用您自己的数据库在本地运行MONGO_URL

$ MONGO_URL=mongodb://localhost:<port>/<dbname> meteor run --settings settings.json

请注意,您需要为数据库设置一个明确的名称,如果您的 Meteor 数据库已经包含数据,那么您需要将其导入此数据库才能访问两者。

此外,我个人会避免将端口设置3001为不将其与与 Meteor 捆绑的数据库混淆。你应该对 Mongo 的默认27017端口没问题。

参考:

https://docs.meteor.com/environment-variables.html#MONGO-URL


推荐阅读