mongodb - 使用从 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 使用恢复的数据库启动项目?
解决方案
假设您的数据库正在运行,您可以使用环境变量使用您自己的数据库在本地运行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
推荐阅读
- python - 在线程中更改全局变量
- azure - 微服务架构中的通知服务
- c++ - 嵌套的未定义行为能否消除初始未定义行为的(潜在)危险?
- mongodb - mongocxx::options::find 的运行时错误
- ios - iOS swift socket通信:释放outstream
- java - ActiveMQ 消费者未能在请求队列上消费消息
- machine-learning - Graph API - 阅读没有签名的 Outlook 电子邮件
- python-3.x - 在 tkinter 中使用 After
- python - 我想将元组中的值移动到列表中
- azure - Azure VM Port forwarding to localhost port