2012-05-31 17 views
5

Si no cerramos o terminamos la conexión mysql en el nodo js, ​​se trata de efectos en la característica o no.¿Hay algún problema si no cerramos la conexión mysql en el módulo mysql node js

que estoy haciendo como esto

var mysql  = require('mysql'); 
var connection = mysql.createConnection(...); 

connection.query('SELECT 1', function(err, rows) { 
    // connected! (unless `err` is set) 
}); 

No estoy terminando la conexión MySQL en cualquier lugar en mi código. Mi pregunta es ¿Es necesario cerrar la conexión mysql? Si no cerramos la conexión de mysql me enfrentaré a cualquier otro problema en el futuro.

Por favor, ayúdame soy nuevo en nodejs

EDIT1 No voy a enfrentar cualquier problema, como no puede conectarse, demasiadas conexiones para abrir etc, significa cualquier problema relacionado con los recursos? derecho.

Edit2

En relación con lo cual MySQL instantánea estará cerca si no terminamos de forma manual o mediante el uso de la función final?

Respuesta

5

Usted debe cerrar la conexión.

El punto en el que lo hace depende de lo que su programa haga con esa conexión.

Si el programa es de larga duración y solo necesita una conexión pero utiliza esa conexión continuamente, entonces puede dejar esa conexión abierta, pero debe estar preparado para volver a abrir la conexión si es necesario, p. si el servidor se reinicia.

Si el programa solo abre una conexión, hace algunas cosas, y luego no usa la conexión por algún tiempo, debe cerrar la conexión mientras no la esté usando.

Si el programa es de corta vida, es decir, hace una conexión, hace algunas cosas, y luego sale, puede salir sin cerrar la conexión porque se cerrará automágicamente cuando se cierre el programa.

0

No, no es necesario que lo cierre.

+0

Gracias @Erik.No enfrentaré ningún problema como la imposibilidad de conectarme, demasiadas conexiones para abrir un problema relacionado con los recursos, etc. derecho. –

0

realidad, que se ejecutará en problemas como este de MySQL:

"[host] está bloqueado por muchos errores de conexión; desbloquear con 'mysqladmin flush-hosts"

Como MySQL comenzará a contar esas fallas desconectadas como "errores de conexión". Y luego, su base de datos permanece inutilizable hasta que ejecute FLUSH HOSTS en el servidor MySQL. Sé esto de hecho, sucedió con nuestro proyecto NodeJS.

escribir algo de código para cerrar explícitamente la conexión db antes de cualquier salida o hacer declaraciones usando connection.end() o connection.destroy()

0

Si pregunta es "¿hay alguna limpieza específica en el lado MySQL cuando le digo servidor que estoy cerrando la conexión "entonces la respuesta es" no, si acaba de salir de su proceso de cliente o cerrar el socket es lo mismo que llamar a connection.end() "

Cuestiones relacionadas