我还有另一个问题要问你.我安装了mondodb的Amazon EC2实例.除了一件事之外它很好用 - 我无法从外面访问(连接)它(我的电脑).我认为安全组的问题.这是某种默认防火墙.有谁知道如何配置EC2实例来访问mongodb?提前致谢.
在这之前要仔细考虑.如果您打开端口,请确保限制可以访问它的IP号,否则任何人都可以访问您的数据库.您可以在MongoDB中启用身份验证,但它不是特别安全,只是用户名和密码.你不应该把你的数据库打开到互联网,这不是一个好主意.
比在EC2防火墙中打开端口更好的方法是打开SSH隧道并转发端口,这样可以确保只有在SSH隧道处于活动状态时才能访问数据库.
打开一个新终端并运行此命令(将用户和主机替换为SSH到服务器时使用的用户和服务器名称):
ssh user@host -N -L 27017:127.0.0.1:27017
该命令会将计算机上的端口27017转发到服务器上的同一端口.要连接到MongoDB实例,只需mongo
在终端中运行(如果不起作用,请尝试mongo --host 127.0.0.1
甚至mongo --host 127.0.0.1 --port 27017
).
如果在本地计算机上运行MongoDB,则必须更改第一个端口,因为本地服务器已在使用它.在这种情况下,请运行此命令:
ssh user@host -N -L 27018:127.0.0.1:27017
然后连接
mongo --port 27018
(--host 127.0.0.1
如果不起作用,可能会添加).
使用完数据库后,退出mongo
并使用SSH命令在终端中按ctrl-C.
如果您使用默认配置从外部访问它,则需要为端口27017添加安全组例外.有关安全组配置,请查看amazon EC2文档.如果您在Mongo上使用不同的端口,请相应地更改安全组端口.
--Sai
您的EC2实例是否有机会成为Windows服务器?如果是这样,除了EC2的安全组之外,您还需要配置Windows防火墙以允许传入连接.
转到管理工具,具有高级安全性的Windows防火墙,并配置允许端口27017(默认mongo端口)或您选择的任何端口上的传入连接的新规则.