我正在本地创建一个JavaScript Meteor应用程序,但我希望我的数据库存储在一个独立的AWS服务器上。
我对MongoDB和AWS都很陌生。我想知道如何从本地主机连接到我的数据库?
我正在本地创建一个JavaScript Meteor应用程序,但我希望我的数据库存储在一个独立的AWS服务器上。
我对MongoDB和AWS都很陌生。我想知道如何从本地主机连接到我的数据库?
只需要将您的Meteor应用程序启动时的MONGO_URL
环境变量设置为指向在AWS机器上运行的Mongo实例即可。
假设您已经打开了远程机器上的端口27017:
MONGO_URL=mongodb://addresshere.compute-1.amazonaws.com:27017/yourdbname meteor
mongod.conf
文件中bindIp
的设置是什么?该文件应该位于/etc/mongod.conf
。 - user818510ssh aws-host -L 27017:localhost:27017
或者,如果您通过不同的实例进行连接,则为ssh aws-host -L 2017:target.mongo.host.amazonaws.com:27017
。 - Borys Serebrov除了按照其他答案中提到的配置应用程序以连接远程MongoDB外,还需要确保服务器可以从您的网络访问。
在AWS上访问网络资源有不同的方式:
更改EC2实例的安全组配置 - 这就像是防火墙 - 并允许访问端口27017。 如果您只需要从自己的计算机访问,则可以选择允许来自当前IP地址的访问权限。
使用ssh隧道连接到实例,并将该端口隧道本地化,例如ssh aws-host -L 27017:localhost:27017
或者,如果您通过不同的实例连接,ssh aws-host -L 2017:target.mongo.host.amazonaws.com:27017
。
这个主题有一份很好的演示文稿 - SSH / SSH的黑魔法?。
使用AWS VPN并通过VPN连接到AWS网络(使位于AWS网络内的资源在本地可用)。
mongoose.connect('mongodb://serverIpaddress/databasename', function (err) {
if (err) {
return "no"
} else {
console.log('connection successful');
}
});
根据此链接,您可能需要检查以下内容: 1)操作系统防火墙; 2)正确的服务绑定到私有IP地址(如果没有,请将您的IP添加到IP地址白名单中); 3)如果使用了Mongoose,请检查其版本。使用“npm list mongoose”查找版本并更新到最新版本。
您可以使用Mongodb Atlas,这是一种“MongoDB作为服务”的提供方式,可在Amazon Web Services(AWS)上使用,以托管您的数据库(它有一个免费的起始层),并使用MongoDB Compass轻松管理您的数据。
MONGO_URL
。 - David Weldon