Asp.Net Core访问阿里云MongoDB云数据库
Asp.Net Core访问阿里云MongoDB云数据库
选择.Net Core技术栈开发跨平台软件解决方案,投入少,产出快,有助于企业内部降本增效。MongoDB的实体类增加字段不用迁移数据库,适合需求经常变化的应用场景。如果是企业内部小型应用,拉一个MongoDB容器即可,如果要进一步考虑多节点冗余,高可用,异地备份,安全审计等等要求,还是买云数据库吧。小型软件团队要集中精力分析业务需求,快速实现软件功能,发布上线产出成果,没有多余的资源去搞基础设施建设和维护。MongoDB是主流的NoSQL数据库之一,主要的公有云平台都有MongoDB云数据库产品。
创建MongoDB实例
普通业务买个三节点云数据库MongoDB副本集版即可,购买数据库实例的时候要设置root密码,设置专用网络和虚拟交换机,要跟ESC主机在同一个可用区,同一个VPC网段,使得Web应用访问数据库走内网传输数据。存储空间起始阶段小一点也可以,以后数据量大了加钱即可扩容。
https://common-buy.aliyun.com/dds/prepay?regionId=cn-shanghai
设置数据库访问白名单
在阿里云控制台MongoDB管理网页中添加ESC主机IP到白名单,ESC主机才能够访问MongoDB云数据库。
https://mongodb.console.aliyun.com/replicate/cn-shanghai/instances/xxx/whiteList
在加载ECS内网IP窗口,允许访问IP名单列表中,选择需要添加的ECS主机内网IP地址。
在数据库连接页面,复制连接字符串ConnectionStringURI备用。
https://mongodb.console.aliyun.com/replicate/cn-shanghai/instances/xxx/connect
创建数据库访问子账号
在数据库实例账号管理页面,选择【登录数据库】,【Primary】。
转到数据库管理器DMS页面,填写登录信息,这些信息是购买数据库实例的时候填写过的。然后【登录】进入DMS页面。
在DMS页面登录了数据库实例后,就可以创建账号了。
创建子账号username,设置密码password,权限readwriteanydatabase,以后用子账号读写数据库。不要使用root账号,权限太高了,不安全。
Asp.Net Core项目访问MongoDB云数据库
Asp.Net Core项目NuGet安装MongoDB.Driver,使用阿里云MongoDB云数据库连接字符串ConnectionStringURI,创建MongoClient,访问数据库。username和password是子账号和密码。
var dbClient = new MongoClient(“mongodb://username:password@dds-xxx.mongodb.rds.aliyuncs.com:3717,dds-yyy.mongodb.rds.aliyuncs.com:3717/admin?replicaSet=mgset-zzz”);