【问题标题】:Use Robo 3T to connect to remote MongoDB使用 Robo 3T 连接远程 MongoDB
【发布时间】:2018-05-01 22:47:31
【问题描述】:

我正在尝试在 Mac 下使用 Robomongo(或 Robo 3T)在远程 Ubuntu 和 Nginx 服务器中控制我的 mongodb。

通常,我需要在带有用户名和密码的终端中ssh xxx.xx.xx.xx 才能连接到服务器。在/etc/nginx/sites-enabled/myweb.io,有listen 443 ssl

在 Robo 3T 中,我尝试建立与 Use SSH tunnel 的连接。我尝试了端口号44380。但它给了我一个错误:Error: Resource temporarily unavailable. Error when starting up SSH session: -13. (Error #35)

有谁知道如何解决这个问题?

【问题讨论】:

  • 尝试在不使用 SSH 隧道的情况下进行连接,并且 SSH 在端口 22 上运行(如果您没有更改它但应该更改它)。
  • 如果我不使用 SSH 隧道连接,我应该使用哪种方式?
  • 只需取消选中 SSH 隧道并尝试连接。
  • 我用 22 填充端口,取消选中 SSH 隧道,它给了我一个错误:Cannot connect to the MongoDB at :0. Error: Network is unreachable.
  • 这意味着 SSH 连接通过但无法连接到您的 MongoDB 实例。尝试检查您的服务器 Mongo 是否正在运行。

标签: mongodb nginx ssh digital-ocean robo3t


【解决方案1】:

正确的设置是

1)SSH下,勾选User SSH tunnel,使用端口22

2) 在Connection 下写127.0.0.1:27017

【讨论】:

    【解决方案2】:

    使用Roto3t 连接到远程MongoDB

    首先,我们应该检查标准URI connection schememongodb

    mongodb://[username:password@]host1[:port1][,...hostN[:portN]]][/[database][?options]]
    

    我们在Cloudfoundry 上向远程MongoDB 发送SSH Connection

    就我而言 cf ssh -L port_forwarding:HOST_NAME:Port NAME_OF_APP

    (1) 在Robo3TConnection 标签中我们选择

    Type: direct connection
    Name: choose_any_connection_name
    Address: localhost and port is 'port_forwarding' we choose in the SSH connection we made.
    

    (2) 在Authentication 选项卡中,我们应该添加databaseusernamepasswordAuth Machanism: SCRAM-SHA-1

    (3) 在SSH 选项卡中,我们将取消选中use SSH tunnel,因为我们手动创建了它。 现在,如果您单击测试,连接应该会成功完成。

    注意:如果我们使用Studio 3T,它将解析URI并为我们填写所有这些字段。

    【讨论】:

      【解决方案3】:

      为了使用 Robo 3T GUI 成功远程连接 MongoDB,我在 Ubuntu 18 Vagrant 机器上做了一些配置。我已经在以下步骤中进行了解释。

      1. 在 Ubuntu 服务器上,打开 mongo shell 运行:
        $ mongo
        
      2. 在 mongo shell 中,输入以下命令来创建一个新的管理员用户。

        > use admin;
        > db.createUser({user:"admin", pwd:"password", roles:[{ role: "root", db: "admin" }]});
        
      3. 默认情况下,mongodb 配置为仅允许来自本地主机(IP 127.0.0.1)的连接。我们需要允许来自任何 IP 地址的远程连接。以下更改只能在您的开发服务器中进行。打开 etc/mongod.conf 文件并进行以下更改。

        # network interfaces
            net:
                port: 27017
                bindIp: 0.0.0.0   #default value is 127.0.0.1
        

        同样在同一个 mongod.conf 文件中取消注释安全选项并添加 authorization 选项,如下所示。

        security:
            authorization: enabled
        
      4. 保存并退出 mongod.conf 文件并重启 mongodb 服务器。

        $ sudo servcie mongod restart
        
      5. 下载并安装 Robo 3T GUI 工具。

      6. 在 Robo 3T GUI 上,在连接设置中,您需要进行一些更改,如下所示 下面是屏幕截图。

      输入你之前创建的mongodb admin数据库用户名和密码。

      在这里,我输入了我的 Ubuntu 18 Vagrant box ssh 凭据。

      保存更改并按连接图标查看连接是否正常。

      【讨论】:

      • 谢谢,这对我有用。只是为了向其他用户澄清——配置文件位于/etc/mongod.conf
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-02-19
      • 1970-01-01
      • 2019-08-15
      • 2019-08-27
      • 1970-01-01
      • 1970-01-01
      • 2021-01-13
      相关资源
      最近更新 更多