线上服务器链接数据库失败,不知道和专有网络有关系吗?
来源:10-4 部署发布电影网站并连接线上 MongoDB
我很爱大圆脸
2018-01-22
本地服务器下,项目都正常跑通。线上服务器,阿里云网络为专有网络,项目可以部署成功,node服务可以跑起来,不需要链接数据库的接口可以正常请求,但是需要链接数据库的接口都链接不上,不知道是哪里出了问题。求指导,谢谢,这个问题困扰我很久了。
写回答
4回答
-
Scott
2018-02-12
你部署到服务器上是用 pm2 部署的吧,你 ssh 到服务器上,用 pm2 logs 打开实时日志,然后重新从本地部署下,访问下网页,看下服务器的 log 是什么,如果连不上,这里就一定会报错,报错信息就能给出线索,现在依然不确定是哪个问题导致的
00 -
Scott
2018-01-26
你在服务器上建一个文件及,然后里面装上 mongoose,把下面的测试脚本帖进去,比如 db.js
const mongoose = require('mongoose') mongoose.Promise = global.Promise const connectDb = () => { // const db = 'mongodb://localhost/xxx' const db = '你的 db url,如 mongodb://localhost/xxx' let maxConnectTimes = 0 mongoose.set('debug', true) mongoose.connect(db, { // 这个配置可能不需要,如果 mongoose 是 5.x 的话 // useMongoClient: true }) mongoose.connection.on('disconnected', () => { maxConnectTimes++ if (maxConnectTimes < 5) { mongoose.connect(db, { // 这个配置可能不需要,如果 mongoose 是 5.x 的话 // useMongoClient: true }) } else { throw new Error('数据库挂了吧 快去修复') } }) mongoose.connection.on('error', err => { console.error(err) }) mongoose.connection.once('open', () => { console.log('Connected to MongoDB -> ', db) }) } connectDb()
最后执行 node db,看看有没有报错,是否能链接成功
072018-02-05 -
Scott
2018-01-22
还有第四个,是阿里云后台的安全组这里可能也要配置下端口的访问权限
012018-01-23 -
Scott
2018-01-22
那应该是跟数据库这里有关系,如下几种可能:
数据库没有成功开启服务,导致连不上
服务器的端口没有在防火墙这里配置好访问权限,导致连不上
链接数据库的 url 里面的参数组合可能不合法,导致连不上
可以先到服务器上,命令行连接数据库试试看,类似这样子:
mongo --port 20517 moveha-june-online -u muhaha_runner -p fxxkuHou233$
022018-01-23
相似问题