带有 MariaDB 超时错误的 Sequelize

问题描述 投票:0回答:0

在我的 NodeJS 应用程序中,我使用 Sequelize 来处理我的 MariaDB。在 Sequelize 无法连接数据库的情况下,我经常遇到超时错误。我认为这是正常行为,但我想对此类错误做出反应,例如重新启动 NodeJS 服务器。

所以我的问题是,有人知道如何捕捉这种错误吗?

text: "Connection timeout: failed to create socket after 1002ms",
sql: null,
fatal: true,
errno: 45012
sqlState: "08S01"
code "ERR_CONNECTION_TIMEOUT"

此错误以红色显示,NodeJS 应用程序被终止。

我用这个连接数据库:

const Sequelize = require("sequelize");

const sequelize = new Sequelize("xxx", "xxx", "xxx", {
  host: "xxxx",
  dialect: "mariadb",
  pool: {
    max: 15,
    min: 0,
    idle: 10000,
  },
  logging: false,
  timezone: "+01:00",
});

sequelize
  .authenticate()
  .then(() => {
    console.log("Connection to database has been established successfully.");
  })
  .catch((err) => {
    console.error("Unable to connect to database:", err);
  });

module.exports = sequelize;

知道如何防止这个被杀死的 NodeJS 实例吗?我也用pm2

注意:这不是我的 NodeJS 和 MAriaDB 的永久性问题。这是随机发生的。大多数时候它运行良好 300000 次然后我得到了这个错误。直接重启 NodeJS 就会让它再次运行,直到出现这个错误。

node.js mariadb sequelize.js pm2
© www.soinside.com 2019 - 2024. All rights reserved.