问题描述:
目前项目在本地运行的时候,后端代码如下
var mongoose = require('mongoose')
mongoose.set('useFindAndModify', false)
mongoose.connect('mongodb://comment:password@localhost/comments',{
useNewUrlParser: true, useUnifiedTopology: true,
})
......
终端开启mongodb数据库之后显示
This server is bound to localhost.
Remote systems will be unable to connect to this server.
意思就是,这个是本地数据库,远程系统不能连接到这个数据库
我的问题是:
是不是项目上线之后,直接安装mongodb数据库,从npm上下载mongoose之后,直接修改后端这段代码
mongodb://comment:password@localhost/comments
为
mongodb://comment:password@公网IP/comments
就能解决这个问题了?
另外比如阿里云的服务器,用开27017端口吗?(27017是mongodb数据库的默认端口),现在还没有购买服务器....
拜托各位大佬不吝赐教,小弟先行谢过
这其实涉及多个方面的问题,对应不同的解决方法
2.1. 你mongodb数据库要设置为服务绑定到
0.0.0.0
,这样才能对外提供服务2.2. 你安装mongodb数据库的服务器上要打开允许远程访问相关的本地安全设置,起码放行mongodb数据库涉及的端口对外监听
2.3. 你应用要配置访问远程mongodb数据库,方法基本按你前面提到的
安全组
)设置中要许可mongodb数据库对应监听端口,且mongodb数据库还需要获得公网IP,或者某个有公网IP点主机能映射(反向代理)mongodb数据库数据库服务(端口)到本机某个端口,这时客户端访问也如你提到的类似,需要mongodb://comment:password@公网IP/comments