如何将本地MongoDB Compass连接到第三方VPS Mongo数据库?

问题描述 投票:0回答:1

我有一个运行 Linux CentOS 的远程虚拟专用服务器 (VPS),我的服务提供商已在其上安装了 MongoDB。我长期以来一直在那里托管网站,但我对 MongoDB 还很陌生。我可以通过本地终端访问该 VPS。

我使用这个简单的命令通过 SSH 连接到服务器,不需要密码,因为我在服务器的

.ssh
目录中有一个公共 RSA 密钥:

ssh [email protected]

如果我指定端口,系统会提示我输入 SSH 密码:

ssh [email protected] -p22

无论哪种方式,我都已连接并能够使用该 VPS 上的 Mongo 数据库,从此命令开始,该命令会提示输入密码:

mongosh --username mongousername --password

我可以通过命令行创建用户和基础知识。这不是问题。

我需要帮助的是,我希望能够通过 MongoDB Compass 中的 GUI 使用此数据库,但我不知道如何配置 Compass 以便建立正确的连接。它永远不会连接,并且我不断收到“套接字关闭”错误。我尝试了几种方法,但无法弄清楚。我尝试使用用户名和密码(包括我的 SSH 连接和 MongoDB 用户)来完成此操作,并在我的 VPS 上上传与公共密钥相匹配的私钥。我尝试过同时使用密码和密钥。我尝试过打开和关闭 TLS。我找不到关于我需要做什么的明确文档。

我想我需要在 Compass 中提供正确的 URI 和/或高级连接选项。我从 URI 开始,尝试包含端口,并尝试了一堆不同的连接选项,正如我上面提到的。

mongodb://111.111.111.11

我想我需要为多个用户保存多个连接预设,因为我的管理员用户只能更改其他用户(如果我理解正确的话),而其他用户是实际操作各种数据库的用户。这是正确的吗?

感谢所有帮助,以及任何可以更好地帮助我前进的指示或提示。谢谢。

mongodb ssh vps mongodb-compass
1个回答
0
投票

总结/“解释”评论:

对于应用程序如何通过 SSH 隧道连接到服务器的天真想法,我想到 “是什么让我通过隧道?” 当我到达那里之后,“什么将我的应用程序连接到服务器?” .

您已经手动完成了这些步骤。

ssh [email protected]
让您通过 SSH 隧道(并为您提供了命令行 shell)。因此,应用程序(MongoDB Compass)也需要知道如何做到这一点。将 MongoDB Compass 的
SSH Hostname
设置为
111.111.111.11
(以及您想要/需要的任何其他 SSH 参数)可以让您通过隧道。

mongosh --username mongousername --password
将应用程序 (
mongosh
) 连接到服务器(从命令行 shell)。 MongoDB Compass(穿过隧道后)需要做同样的事情。这对应于
URI
的(基本)
mongodb://127.0.0.1:27017

© www.soinside.com 2019 - 2024. All rights reserved.