从 heroku 服务器上的 node.js 应用程序连接远程 mysql 数据库时出现 ETIMEDOUT

ETIMEDOUT while connecting remote mysql database from node.js app on heroku server

我使用的代码示例:

const connection = mysql.createPool({
    host: process.env.NEXT_DB_HOST, //*******.timeweb.ru
    database: process.env.NEXT_DB_DATABASE, //c*****_tech
    user: process.env.NEXT_DB_USER, //c*****_tech
    password: process.env.NEXT_DB_PASSWORD, //******
    waitForConnections: true,
    connectTimeout: 100000,
    connectionLimit: 10,
    queueLimit: 0
});

connection.query(
    "SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE = 'BASE TABLE'",
    (err, results, fields) => {
         if(err) console.log(err);
         console.log(results);
         console.log(fields);
    }
);

所有变量都添加到 heroku 中。该域也作为“访问数据库点”添加到 timeweb 面板。我知道 heroku 有动态 IP,那么如何连接远程数据库?

Timeweb 仅使用静态 IP-address 进行连接,但 heroku 具有动态连接。最好更改托管,对于 node.js 应用程序,它可以是任何 VPS,例如 Timeweb。