将远程mysql服务器与heroku NODE.js应用程序连接时出现ETIMEDOUT错误
我正在Node.JS项目中使用远程托管的mysql db。该连接在本地工作(使用远程mysql),并且当我将其托管在与mysql db相同的服务器上时也可以工作。但是当我尝试从heroku连接它时,给了我一个'ETIMEDOUT'错误 这是我的db脚本,其中包含所有与db相关的操作将远程mysql服务器与heroku NODE.js应用程序连接时出现ETIMEDOUT错误,mysql,node.js,heroku,node-mysql,Mysql,Node.js,Heroku,Node Mysql,我正在Node.JS项目中使用远程托管的mysql db。该连接在本地工作(使用远程mysql),并且当我将其托管在与mysql db相同的服务器上时也可以工作。但是当我尝试从heroku连接它时,给了我一个'ETIMEDOUT'错误 这是我的db脚本,其中包含所有与db相关的操作 'use strict'; var utils = require('./utils'); var mysql = require('mysql'); var pool = null; exports.init =
'use strict';
var utils = require('./utils');
var mysql = require('mysql');
var pool = null;
exports.init = function (env) {
if (env === 'production') {
pool = mysql.createPool({
host : '100.00.00.109',
user : 'kjahsdkasd',
password : 'asdasda!',
database : 'maics'
});
} else {
pool = mysql.createPool({
host : 'localhost',
user : 'root',
password : '',
database : 'maics'
});
}
};
exports.query = function (query, callback, res) {
pool.getConnection(function(error, connection){
if (error) {
utils.error({
data : error
}, "error in mysql connection", res);
} else {
connection.query(query, function (err, result, fields) {
connection.release();
if (err) {
utils.error({
data : err
}, "error in mysql operation", res);
}
else callback(result, fields);
});
}
});
};
exports.queryWithObject = function (query, object, callback, res) {
pool.getConnection(function(error, connection){
if (error) {
utils.error({
data : error
}, "error in mysql connection", res);
} else {
connection.query(query, object, function (err, result, fields) {
connection.release();
if (err) {
utils.error({
data : err
}, "error in mysql operation", res);
}
else callback(result, fields);
});
}
});
};
当我查询时,这是我得到的响应。
这是我在服务器上的远程mysql配置,我已经允许了所有请求,它还可以在本地与远程数据库一起工作。我知道这是一个非常具体的问题,我只是在寻找任何方向
尝试将MySQL服务器设置为侦听
0.0.0.0
(如果您还没有)。尝试了@BenFortune,我还允许所有传入的ip都使用%通配符,这样看起来就不会出现问题。您最终解决了这个问题吗?