2012-05-31 6 views
5

Se non chiudiamo o terminiamo la connessione mysql nel nodo js, ​​si tratta di effetti nella funzione o meno.C'è qualche problema se non chiudiamo la connessione mysql nel modulo mysql js

sto facendo in questo modo

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

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

non sto finendo connessione mysql ogni dove nel mio codice. La mia domanda è E 'necessario chiudere la connessione mysql. Se non chiudiamo la connessione mysql dovrò affrontare altri problemi in futuro.

Ti prego, aiutami Sono nuovo di nodejs

EDIT1 non voglio affrontare problemi come in grado di connettersi, troppe connessioni per aprire ecc, significa eventuali questioni connesse risorse? destra.

EDIT2

A quale connessione mysql istante sarà vicino se non finire manualmente o utilizzando funzione fine?

risposta

5

chiudere la connessione.

Il punto in cui lo si fa dipende da cosa fa il programma con quella connessione.

Se il programma è di lunga durata e richiede solo una singola connessione ma utilizza tale connessione in modo continuo, è sufficiente lasciare aperta quella connessione, ma è necessario essere pronti a riaprire la connessione se necessario, ad es. se il server viene riavviato.

Se il programma apre una sola connessione, esegue alcune operazioni e quindi non utilizza la connessione per un po 'di tempo, è necessario chiudere la connessione mentre non la si utilizza.

Se il programma è di breve durata, cioè crea una connessione, fa alcune cose e quindi esce, è possibile uscire senza chiudere la connessione perché verrà chiuso automaticamente al termine dell'esecuzione del programma.

0

No non è necessario chiuderlo.

+0

Grazie @Erik.Non affronterò problemi come non riuscire a connettermi, troppe connessioni per aprire il problema relativo alle risorse ecc. destra. –

0

In realtà, si incorrere in problemi come questo da MySQL:

"[host] è bloccato a causa di molti errori di connessione; sbloccare con 'mysqladmin flush-hosts"

Poiché MySQL inizierà a contare i disconnessi falliti come "errori di connessione". E poi, il tuo database rimane inutilizzabile finché non esegui FLUSH HOSTS sul server MySQL. Lo so per certo, è successo con il nostro progetto NodeJS.

scrivere del codice per chiudere esplicitamente la connessione db prima di qualsiasi output o rendere dichiarazioni utilizzando connection.end() o connection.destroy()

0

Se si mette in discussione è "c'è qualche pulizia specifica sul lato mysql quando dico server che sto chiudendo la connessione "allora la risposta è" no, se si esce dal processo client o si chiude il socket è come chiamare connection.end() "