【问题标题】:Move mongo database from vagrant outside of VM将 mongo 数据库从 vagrant 移到 VM 之外
【发布时间】:2017-03-28 16:17:35
【问题描述】:

大家好,我正在尝试找到一种方法将我的 mongo 数据库移到 vagrant 之外。我正在阅读此论坛中的一些帖子,但它们与 postgres 和 mysql 有关。

当我运行 npm start 时,这是我的 package.json 中的代码

"start": "MONGODB=mongodb://localhost:27017....

所以问题是数据库将保存在虚拟机本地主机中,因此,当它运行时,它将无法在 VM 之外访问。如何更改此 localhost 路径以与外部通信?

【问题讨论】:

    标签: mongodb vagrant


    【解决方案1】:

    无论是vagrant还是其他服务器都没有什么不同。

    数据库位置文件在/etc/mongodb.conf 中指定。默认db保存在/data/db

    所以问题是数据库将保存在虚拟机本地主机中,因此,当它运行时,它将无法在 VM 之外访问。如何更改此 localhost 路径以与外部通信?

    如果您希望可以从主机访问数据库,您需要将 localhost 替换为 vagrant VM 的 IP(如果您指定了私有 IP)或更好地使用 0.0.0.0 以便从所有网络接口访问它

    【讨论】:

    • 数据目录在哪里?如果我输入 ps -xa | grep mongod 查看我的 mongod 主文件夹在哪里 我得到以下信息: /usr/bin/mongod --quiet --config /etc/mongod.conf
    • 它是根,如果没有,请执行cd /data/db,如果没有,您可以检查您的 mongodb.conf 是否具有 dbpath 属性
    • 因此请检查/etc/mongodb.conf 文件中的dbpath
    【解决方案2】:

    我做到了,这个链接给了我答案:Vagrant reverse port forwarding?

    似乎默认情况下 mongo 将位于 vagrant 之外的 10.0.2.2 中,所以如果我在 vagrant 内部运行:mongo 10.0.2.2:27017 它会连接到我在 vagrant 之外的数据库。

    因此,这是我需要放入 package.json 以运行 npm start...

    "start": "MONGODB=mongodb://10.0.2.2:27017/

    【讨论】:

      猜你喜欢
      • 2019-07-31
      • 1970-01-01
      • 2021-04-22
      • 1970-01-01
      • 2012-12-27
      • 2019-05-07
      • 1970-01-01
      • 2021-08-18
      • 1970-01-01
      相关资源
      最近更新 更多