与MySQL的节点服务器连接丢失

与MySQL的节点服务器连接丢失,mysql,node.js,npm,amazon-rds,Mysql,Node.js,Npm,Amazon Rds,使用池连接时,到AWS RDS的连接经常丢失,而不会发出任何错误事件,如PROTOCOL\u Connection\u lost等。当API服务器收到请求时,mysql返回空数组作为结果,而不是错误 我可以在RDS仪表板中看到断开的连接,但未发出任何错误事件。 我尝试过类似于更改mysql\u连接\u选项的解决方案,如connectTimeout,wait\u timeout等,此外,我还尝试过短时间定期ping mysql服务器(返回正确的结果)但是仍然会丢失连接,并且查询返回空数组作为结果,

使用池连接时,到AWS RDS的连接经常丢失,而不会发出任何错误事件,如
PROTOCOL\u Connection\u lost
等。当API服务器收到请求时,mysql返回空数组作为结果,而不是错误

我可以在RDS仪表板中看到断开的连接,但未发出任何错误事件。 我尝试过类似于更改
mysql\u连接\u选项的解决方案,如
connectTimeout
wait\u timeout
等,此外,我还尝试过短时间定期ping mysql服务器(返回正确的结果)但是仍然会丢失连接,并且查询返回空数组作为结果,没有任何错误

这是我的连接代码:

connection = mysql.createPool(mysqlConnectionOptions);
function pingSqlServerForPersistentConnection() {
    console.log("PINGING : ");
    connection.getConnection(function (err) {
        if (err) {
            console.log('MYSQL ERROR CONNECTION : ' + err);

            pingSqlServerForPersistentConnection();
        }
        else {
            if (config.get("APP_NAME") == "prod") {
                setInterval(selectStar, 150000);
            }
            console.log('Connection established');
        }
    });
    connection.on('error', function (err) {
        console.log("MYSQL DISCONNECTED : ", JSON.stringify(err));
        pingSqlServerForPersistentConnection();
        if (err.code === 'PROTOCOL_CONNECTION_LOST') {
            console.log("MYSQL : \n PROTOCOL_CONNECTION_LOST");
            pingSqlServerForPersistentConnection();
        }
        if (err.code === 'ETIMEDOUT') {
            console.log("MYSQL : ETIMEDOUT");
            pingSqlServerForPersistentConnection();
        }
    });
}

您在控制台中得到了什么?在启动服务器时,连接到mysql是成功的,所以我建立了“”连接“.有时当与mysql的连接丢失后,所有查询返回空数组且无错误,直到我重新启动api服务器。您在控制台断开mysql连接了吗?没有,正如我所提到的,我没有收到来自mysql的事件,因此错误处理mysql事件的代码块从未执行过