准备工作:获取阿里云的“免费体验”配置,免费试用期限一个月。期间会有阿里云的工作人员来电接洽。
1、开通“云服务器ECS”、“云数据库MongoDB”和“专有网络VPC”(没有这个无法用ECS连接MongoDB)。
2、添加MongoDB的白名单:




3、再次强调,需要“专有网络VPC”连接ECS和MongoDB。
4、使用xshell连接ECS服务器的公网IP,同时下载xftp。注:xshell和xftp需要是中文版的,方便阅读。
5、在ECS服务器中安装"rinetd",可以在外网连接ECS,再通过rinetd连接MongoDB。
参考文献:https://www.alibabacloud.com/help/zh/doc-detail/55253.html
很奇怪,这个“阿里云帮助中心”,居然不是和阿里云同一个域名!而且这个方法在阿里云官网中是找不到的!
6、配置ECS服务器安全规则。


如果没有规则就自己创建,然后配置规则为:

注意:
a、这里的3717/3717是xshell或者测试程序连接ECS的端口,可以修改为别的数字。但是两个数字一定要一样,否则无法连接成功。
b、再次强调,参考文献:https://www.alibabacloud.com/help/zh/doc-detail/55253.html 中有记载“关闭rinetd”的方法。测试完成之后一定要关闭!
7、尝试使用vscode中自己的代码连接数据库。 下面只是部分代码。
// 猜测,阿里云不允许超级管理员通过程序认证
// 这里的参考文献是: // http://blog.itpub.net/807718/viewspace-2145108/ // http://mongodb.github.io/node-mongodb-native/2.2/api/MongoClient.html#connect // 这里的写法是根据官网规定写的。options是一个object,只能这样写了。
// testuser是数据库“test”中的一个账户,需要自己在数据管理DMS或者通过mongoshell创建。 const mongoose = require('mongoose'); let url = "mongodb://@ECS的url:3717/test"; let options = { authSource: "admin", auth: { user: "testuser", password: "123456" }, useNewUrlParser: true } mongoose.connect(url, options);
最终成功连接数据库。
浙公网安备 33010602011771号