我买了一个VPS,我想把MongoDB服务器放在那里。我使用 ssh 隧道连接到 VPS,安装 MongoDB 并启动它。 问题是,如何将 VPS 服务器添加到 MongoDB Compass?还可能吗?
我尝试通过主机名连接,但收到此错误 -
connect ECONNREFUSED my.ip.adress.here
还尝试通过 MongoDB Compass 中的 ssh 隧道进行连接 - 对我来说不起作用。
也许端口有问题?
我可以使用 ssh 从终端连接到我的 VPS。
编辑1: 我使用这个 documentation 在 ubuntu 上安装 MongoDB,我使用的是 MongoDB 4.2.8
EDIT2: 当我在 VPS 上安装 mongodb 时,MongoDB ip 是 127.0.0.1 我该如何更改它?我希望将其设置为 VPS IP 地址。如果可能的话,否则我不明白如何连接到 VPS 上的数据库。
抱歉,如果这是蹩脚的问题,我是第一次使用 VPS,对我来说相当复杂。
在使用 mongodb compass 连接到 vps 之前,您需要允许从您的 vps 远程连接到 mongodb。
建议使用用户名和密码保护您的 mongodb 连接
编辑位于
的 mongod.conf 文件sudo nano /etc/mongod.conf
输入逗号并将 vps 的 IP 地址附加到 bindIp 字段的末尾。这将允许远程连接到 mongodb 实例
保存文件并重新启动mongodb连接
sudo systemctl 重新启动 mongod
sudo ufw允许27017
vps 就这样了。
就是这样。您应该已连接。您现在可以在远程计算机上查看 mongodb 实例的集合和字段
要从 MongoDB Compass 安全地连接到 VPS 上的远程 MongoDB 实例,而不将 MongoDB 端口(通常为 27017)暴露到互联网(这是不安全的),您可以使用非默认本地端口设置 SSH 隧道。方法如下:
1。配置 SSH 隧道
由于您的本地计算机可能已经在端口 27017 上运行 MongoDB,因此请选择一个未使用的端口,例如 27018,以避免冲突。
使用 ssh 密钥
ssh -i /path/to/your/private_key -L 27018:localhost:27017 -N your_username@your_vps_ip
或使用密码
ssh -L 27018:localhost:27017 -N your_username@your_vps_ip
此命令创建一个隧道,将本地端口 27018 重定向到远程服务器的 localhost:27017(MongoDB 的默认端口),-N 防止 SSH 打开远程 shell,因此它不会启动登录会话。
2。隧道处于活动状态时,打开 MongoDB Compass 并使用以下设置:
Hostname: localhost
Port: 27018
或使用连接字符串
mongodb://localhost:27018
此设置指示 MongoDB Compass 连接到 localhost:27018,该主机通过 SSH 隧道安全转发到 your_vps_ip:27017。