使用 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
建立连接。我尝试了端口号 443
或 80
。但它给了我一个错误: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
选项卡中,我们应该添加database
、username
、password
和Auth Machanism: SCRAM-SHA-1
(3) 在 SSH
选项卡中,我们将取消选中 use SSH tunnel
,因为我们手动设置了它。
现在,如果您单击测试,连接应该会成功完成。
注意:如果我们使用Studio 3T,它将解析 URI 并为我们填写所有这些字段。
为了使用 Robo 3T GUI 远程成功连接 MongoDB,我在 Ubuntu 18 Vagrant box 上做了一些配置。我已经在以下步骤中进行了解释。
- 在 Ubuntu 服务器上,打开 mongo shell 运行:
$ mongo
在 mongo shell 中,键入以下命令以创建新的管理员用户。
> use admin;
> db.createUser({user:"admin", pwd:"password", roles:[{ role: "root", db: "admin" }]});
默认情况下 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
保存并退出 mongod.conf 文件并重新启动 mongodb 服务器。
$ sudo servcie mongod restart
下载并安装 Robo 3T GUI 工具。
在 Robo 3T GUI 上,在连接设置中,您需要做一些更改,如下所示
下面是屏幕截图。
输入您之前创建的mongodb admin数据库用户名和密码。
在这里,我输入了我的 Ubuntu 18 Vagrant box ssh 凭据。
保存更改并按连接图标以查看连接是否正常。
我正在尝试使用 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
建立连接。我尝试了端口号 443
或 80
。但它给了我一个错误: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
选项卡中,我们应该添加database
、username
、password
和Auth Machanism: SCRAM-SHA-1
(3) 在 SSH
选项卡中,我们将取消选中 use SSH tunnel
,因为我们手动设置了它。
现在,如果您单击测试,连接应该会成功完成。
注意:如果我们使用Studio 3T,它将解析 URI 并为我们填写所有这些字段。
为了使用 Robo 3T GUI 远程成功连接 MongoDB,我在 Ubuntu 18 Vagrant box 上做了一些配置。我已经在以下步骤中进行了解释。
- 在 Ubuntu 服务器上,打开 mongo shell 运行:
$ mongo
在 mongo shell 中,键入以下命令以创建新的管理员用户。
> use admin; > db.createUser({user:"admin", pwd:"password", roles:[{ role: "root", db: "admin" }]});
默认情况下 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
保存并退出 mongod.conf 文件并重新启动 mongodb 服务器。
$ sudo servcie mongod restart
下载并安装 Robo 3T GUI 工具。
在 Robo 3T GUI 上,在连接设置中,您需要做一些更改,如下所示 下面是屏幕截图。
输入您之前创建的mongodb admin数据库用户名和密码。
在这里,我输入了我的 Ubuntu 18 Vagrant box ssh 凭据。
保存更改并按连接图标以查看连接是否正常。