【问题标题】:Accessing MongoDB from Windows & Mac Client Machines从 Windows 和 Mac 客户端机器访问 MongoDB
【发布时间】:2016-05-07 09:11:35
【问题描述】:

我的 Linux Red Hat 服务器上安装了 MongoDB 3.2。

我开始访问它并查看 mongo Shell 说明。

对于 Windows 机器,说明要我进入命令提示符并将 dirs 更改为安装目录。问题是,MongoDB 安装在我的 Web 服务器上,而不是我的本地 Windows 机器上。

问题:Mongo Shell 那么适用于我吗?如何从我的 Windows 和 Mac 机器开始使用、连接和访问 Mongo?

[注意:我是一名传统的 MySQL / phpMyAdmin 开发人员,希望进入 MongoDB]

修正:

(1) 在@AlexBlex 的帮助下,我正在尝试从 Windows 客户端上的 Robomongo 连接到我服务器上的 MongoDB。尝试设置连接时出现以下错误。我只使用我的服务器 ip 和 http://{my server ip} 尝试了该地址。都没有奏效。查看错误截图

(2) 这是我当前mongod.conf 文件中的内容:

#port=27017
bind_ip=127.0.0.1

(3) 这是我的连接设置的样子。奇怪的是,@AlexBlex 下面的解决方案在他的 Mac 版本上显示了一个 SSH 选项卡。我刚刚安装的 Windows 和 Mac 版本缺少该选项卡。

【问题讨论】:

    标签: linux windows macos mongodb redhat


    【解决方案1】:

    如果你在本地机器上安装了 MongoDB,你可以使用下面的 Mongo shell 连接到你的远程服务器

    mongo  yourserver:27017/database
    

    您必须配置 Mongo 服务器以允许远程连接。为了实现这一点,您需要在 /etc/mongodb.conf 文件中包含以下行。您需要将10.0.0.2 替换为您的客户端机器的IP 地址。

    bind_ip = 127.0.0.1,10.0.0.2
    

    【讨论】:

    • 谢谢@Jaco。 MongoDB 没有安装在我的本地机器上。它安装在我的 Linux Red Hat 服务器上。我正在尽我最大的努力开始学习 MongoDB。那么我该如何“配置 [我的] Mongo 服务器以允许远程连接”?
    • 你还是需要安装本地调用mongo yourserver:27017/database=)
    • 真的。那么它作为一个基于 Web 的应用服务工具是如何工作的呢?是否所有用户都需要在他们的计算机上安装 MongoDB 才能使用我的网络应用程序?
    • 您的用户没有连接到 mongodb。它们连接到运行您的应用程序的 http 服务器,该服务器连接到数据库。为了能够连接到数据库,您需要安装一个客户端。
    【解决方案2】:

    你需要ssh到安装mongodb的服务器,或者在本地机器上安装mongodb。

    要让 robomongo 连接到远程主机,您需要 ssh 到服务器,并检查它是否侦听外部接口:

    lsof -i | grep 27017
    

    如果只绑定到localhost,你需要在/etc/mongodb.conf中编辑一行bind_ip并重启服务。

    出于安全原因,我建议仅在本地接口上侦听,并使用 ssh 隧道进行连接:

    【讨论】:

    • 好的@AlexBlex。我明白了——乌云开始升起 :) 所以不像 MySQL 和 phpMyAdmin 的 Web 界面,我需要从命令行完成我所有的 MongoDB 工作?
    • 有一些 GUI docs.mongodb.org/ecosystem/tools/administration-interfaces 我喜欢 Compass 和 robomongo,但基本上是的,我不认为你可以完全避免命令行。
    • 好的。昨晚我确实在我的 Mac 上安装了 Robomongo。但是后来我遇到了需要设置连接的mac窗口。那是我迷路的地方。下一步该做什么?
    • 如果我在本地机器上安装 Robomongo 并从那里连接,我是否需要按照上面 @Jaco 的建议对 localhost 进行 bind_id 更改?
    • 我执行了您的 SSH 命令并得到了以下 mongod 10980 mongod 8u IPv4 355046325 0t0 TCP localhost.localdomain:27017 (LISTEN) -- 我可以继续了吗?
    【解决方案3】:

    我找到了答案。 @ShahNewasKhan 很棒。见How to connect Robomongo to MongoDB

    您需要做的就是通过 SSH 连接到服务器并编辑 mongod.conf 文件:

    1. #port=27017 取消注释到port=27017
    2. 评论bind_ip=127.0.0.1#bind_ip=127.0.0.1
    3. 通过service mongod restart重启mongodb

    然后通过地址字段中的服务器 ip 和端口字段中的 27017 创建一个 mongo 连接

    希望这对像我这样的 mongo 新手和初创企业有所帮助 :) 祝你好运。

    现在我只需要弄清楚如何确保它的安全。我担心任何知道我的服务器 ip 的人都可以侵入我的 MongoDB

    【讨论】:

    • 太好了,您找到了关于 SO 的解决方案。请接受您的回答,将问题标记为已解决。如果您在答案中添加注释,那就太好了,此设置向 Internet 中的任何人开放对您的数据库的访问权限,并且不应在生产中使用,除非您启用 mongodb auth 和 ssl:docs.mongodb.org/manual/administration/security-checklist
    猜你喜欢
    • 2015-07-25
    • 1970-01-01
    • 1970-01-01
    • 2016-01-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-06
    • 1970-01-01
    相关资源
    最近更新 更多