如果我们不在节点js中关闭或结束mysql连接,它是否会影响功能。
我这样做
var mysql = require('mysql');
var connection = mysql.createConnection(...);
connection.query('SELECT 1', function(err, rows) {
// connected! (unless `err` is set)
});
我的代码中的任何位置都没有结束mysql连接。我的问题是 是否有必要关闭mysql连接。 如果我们不关闭mysql连接将来我将遇到任何其他问题。
请帮助我成为nodejs的新手
EDIT1 我不会遇到任何问题,如无法连接,太多连接打开等,意味着任何资源相关的问题?右。
EDIT2
如果我们不手动结束或使用结束函数,那么即时mysql连接将关闭?
答案 0 :(得分:5)
你应该关闭连接。
您执行此操作的时间点取决于您的程序使用该连接执行的操作。
如果程序存在很长时间并且只需要一个连接但是连续使用该连接,那么您可以保持一个连接打开,但是如果需要,您应该准备重新打开连接 - 例如如果服务器重新启动。
如果程序只打开一个连接,做了一些事情,然后在一段时间内没有使用连接,你应该在你不使用时关闭连接。
如果程序是短暂的,即它建立连接,做一些事情,然后退出,你可以在不关闭连接的情况下离开,因为它会在你的程序退出时自动关闭。
答案 1 :(得分:1)
实际上,你会遇到像MySQL这样的问题:
“[host]因许多连接错误而被阻止;使用'mysqladmin flush-hosts”取消阻止
因为MySQL会将那些失败的断开连接计为“连接错误”。然后,在MySQL服务器上执行FLUSH HOSTS之前,您的数据库仍然无法使用。我知道这是事实,它发生在我们的NodeJS项目中。
编写一些代码,以便在使用connection.end()
或connection.destroy()
答案 2 :(得分:0)
不,你不需要关闭它。
答案 3 :(得分:0)
如果你问的是“当我告诉服务器我正在关闭连接时,mysql端是否有任何特定的清理”,那么答案是“不,如果你只是退出客户端进程或关闭套接字,就像调用连接一样.END()“