我正在使用node.js和mysql来经常运行sql命令。
我收到此错误:Cannot enqueue Handshake after invoking quit
。
这是我做的时候
connection = mysql.createConnection(sqlDetails);
connection.connect();
和
connection.end();
如果我对.connect
和.end
行发表评论,那么我会收到错误ER_CON_COUNT_ERROR: Too many connections
。
有谁知道如何解决这个问题?
由于
答案 0 :(得分:2)
如果你真的想要关闭连接(为什么?如果你经常运行sql命令'你可能想重用它,甚至更好 - 使用连接池)你需要在查询结果回调中这样做。所有命令都被放入命令队列并按顺序处理。
这就是你在做的事情:
答案 1 :(得分:2)
由于节点js是异步的,因此并行执行connection.connect()和connection.end(),
如果要指定执行顺序,请使用
之类的回调connection = mysql.createConnection(sqlDetails);
connection.connect(function(err,callback){
connection.query(function(err,callback){
connection.end();
});
});