使用 Robo 3T 连接到远程 MongoDB

Use Robo 3T to connect to remote MongoDB

我正在尝试使用 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)

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

正确的设置是

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

2) 在Connection下,写上127.0.0.1:27017

使用 Roto3t

连接到远程 MongoDB

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

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) 在 Robo3T 中的 Connection 选项卡中我们选择

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 并为我们填写所有这些字段。

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

  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文件中取消注释安全选项并添加授权选项,如下所示。

    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 凭据。

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