eggjs / egg

🥚 Born to build better enterprise frameworks and apps with Node.js & Koa
https://eggjs.org
MIT License
18.9k stars 1.82k forks source link

通过docker打包的egg项目在centos7中不能连接数据库-数据库连接一直自动断开 disconnected #4531

Open Bear-V opened 3 years ago

Bear-V commented 3 years ago

相关环境信息

问题

尝试和检查

以上,请项目方帮忙看看还有什么原因没有

Bear-V commented 3 years ago

因为是通过egg-mongoose 连接的数据库,直接导致项目启动失败

qingdengyue commented 3 years ago

config 里配置的是啥?

Bear-V commented 3 years ago

config 里配置的是啥?

类似这样的

  const userConfig = {
    // myAppName: 'egg',
    mongoose: {
     client:{
      url: `mongodb://${privateConfig.mongoDB.user}:${privateConfig.mongoDB.pwd}@${privateConfig.mongoDB.host}:${privateConfig.mongoDB.port}/${privateConfig.mongoDB.db}`,
      options: { useUnifiedTopology: true, useNewUrlParser: true, useCreateIndex: true }
}
    },
  };
qingdengyue commented 3 years ago

我记得之前有说 defaultDB 管用来着? 也是用这个mongoose.createConnection 方法创建的嘛?

Bear-V commented 3 years ago

我记得之前有说 defaultDB 管用来着? 也是用这个mongoose.createConnection 方法创建的嘛?

单独使用mongoose创建一个连接扔进去吗? 我试过了,感觉还是有问题,可能是我连接的方式有问题,

现在已经成功了 主要是配置参数里面的 options参数内的useUnifiedTopology: true 把这个删了就好了 莫名其妙的 不传报警告的也是它

后来查了一下说 数据库的版本和node包版本不匹配的时候就会报警告 但是也没有说不匹配利用这个消除警告会导致自动断开的情况

所以具体错误现在也不太明确

但是在最新的mongoose包中有明确说 版本更新后 删除了三种方法,可能是这个原因导致的 image 上面是图下面是原文

useUnifiedTopology 默认情况下,mongoose.connect()将打印出以下警告:

DeprecationWarning: current Server Discovery and Monitoring engine is deprecated, and will be removed in a future version. To use the new Server Discover and Monitoring engine, pass option { useUnifiedTopology: true } to the MongoClient constructor. Mongoose 5.7使用MongoDB驱动程序3.3.x,该驱动程序对监视副本集或分片群集中的所有服务器的方式进行了重大重构。用MongoDB的话来说,这就是 服务器发现和监视。

要选择使用新的拓扑引擎,请使用以下行:

mongoose.set('useUnifiedTopology', true); 该useUnifiedTopology选项删除了对不再与新拓扑引擎相关的多个连接选项的支持 :

autoReconnect reconnectTries reconnectInterval 启用时useUnifiedTopology,请从您mongoose.connect()或的 createConnection()电话中删除这些选项。

如果发现任何意外行为,请在GitHub上发布一个问题。


但是我没有具体查过

qingdengyue commented 3 years ago
useUnifiedTopology: true

这个属性的问题比较多。 https://jira.mongodb.org/issues/?jql=text%20~%20%22useUnifiedTopology%22%20ORDER%20BY%20created%20DESC%2C%20cf%5B10855%5D%20DESC%2C%20cf%5B17250%5D%20ASC