从 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。
我使用的代码示例:
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。