如果我们不closuresmysql节点js模块中的mysql连接,是否有任何问题
如果我们不closures或结束节点js中的mysql连接,它是否影响function。
我正在这样做
var mysql = require('mysql'); var connection = mysql.createConnection(...); connection.query('SELECT 1', function(err, rows) { // connected! (unless `err` is set) });
我的代码中没有结束mysql连接。 我的问题是需要closuresmysql连接。 如果我们不closuresmysql连接,将来我会遇到其他任何问题。
请帮我joinnodejs
编辑1我不会遇到任何问题,如无法连接,打开等太多的连接,意味着任何资源相关的问题? 对。
EDIT2
如果我们不手动结束它或使用end函数,在哪一瞬间mysql连接将会closures?
你应该closures连接。
你做什么取决于你的程序用这个连接做什么。
如果程序是长期存在的,只需要一个连接,但是连续使用这个连接,那么你可以只打开一个连接,但是如果需要,你应该准备重新打开连接 – 例如,如果服务器重新启动。
如果程序只是打开一个连接,做一些事情,然后不使用连接一段时间,你应该closures连接,而不使用它。
如果程序是短暂的,也就是说连接起来,做一些事情,然后退出,不用closures连接就可以离开,因为当程序退出时它会自动closures。
不,你不需要closures它。
其实,你会遇到这样一个来自MySQL的问题:
“[host]由于连接错误而被阻塞;用'mysqladmin flush-hosts'解锁
由于MySQL将开始将那些失败的断开连接logging为“连接错误”。 然后,您的数据库将保持不可用,直到您在MySQL服务器上执行FLUSH HOSTS。 我知道这是事实,它发生在我们的NodeJS项目。
在使用connection.end()
或connection.destroy()
输出或渲染语句之前,编写一些代码来显式closures数据库连接。
如果你的问题是“当我告诉服务器,我正在closures连接时,是否有任何特定的清理在MySQL端”,那么答案是“不,如果你退出你的客户端进程或closures套接字,就像调用connection.end )”