2012-05-31 11 views
5

Wenn wir nicht schließen oder beenden Sie die MySQL-Verbindung in Knoten js, ist es Auswirkungen in Feature oder nicht. in meinem CodeGibt es irgendwelche Probleme, wenn wir nicht schließen Sie die MySQL-Verbindung in mysql Knoten js Modul

Ich mag diese Endung

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

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

täte ist nicht MySQL-Verbindung, wo jeder. Meine Frage ist Ist es notwendig, die mysql Verbindung zu schließen. Wenn wir die mysql-Verbindung nicht schließen, werde ich in Zukunft andere Probleme haben.

Bitte helfen Sie mir bin neu in NodeJS

EDIT1 Ich werde keine Probleme wie nicht in der Lage konfrontiert zu verbinden, zu viele Verbindungen usw. zu öffnen, bedeutet, alle Ressourcenfragen? Recht.

EDIT2

zu welchem ​​Zeitpunkt MySQL-Verbindung wird in der Nähe sein, wenn wir es nicht manuell beenden oder durch Ende-Funktion?

Antwort

5

Sie sollten die Verbindung schließen.

Der Punkt, an dem Sie es tun, hängt davon ab, was Ihr Programm mit dieser Verbindung macht.

Wenn das Programm langlebig ist und nur eine einzige Verbindung benötigt, aber diese Verbindung kontinuierlich verwendet, dann können Sie diese Verbindung offen lassen, aber Sie sollten darauf vorbereitet sein, die Verbindung bei Bedarf erneut zu öffnen - z. wenn der Server neu gestartet wird.

Wenn das Programm nur eine Verbindung öffnet, einige Dinge tut, und dann die Verbindung für einige Zeit nicht verwendet, sollten Sie die Verbindung schließen, während Sie sie nicht verwenden.

Wenn das Programm kurzlebig ist, d. H. Es macht eine Verbindung, macht einige Sachen, und dann können Sie wegkommen, ohne die Verbindung zu schließen, weil es automatisch geschlossen wird, wenn Ihr Programm beendet wird.

0

Nein, Sie müssen es nicht schließen.

+0

Vielen Dank @Erik.Ich werde keine Probleme haben, wie nicht in der Lage zu verbinden, zu viele Verbindungen zu öffnen usw. Ressourcenproblem? Recht. –

0

Eigentlich werden Sie Probleme wie diese von MySQL laufen:

"[host] wegen der vielen Verbindungsfehler blockiert wird; entsperren mit 'mysqladmin flush-hosts"

Da MySQL beginnt, diese fehlgeschlagenen Verbindungsabbrüche als "Verbindungsfehler" zu zählen. Und dann bleibt Ihre Datenbank unbrauchbar, bis Sie FLUSH HOSTS auf dem MySQL-Server ausführen. Ich weiß das genau, das ist bei unserem NodeJS-Projekt passiert.

einige Code schreiben, um explizit die DB-Verbindung vor jeder Ausgabe zu schließen oder Aussagen machen connection.end() oder connection.destroy()

0

mit der Wenn Sie die Frage „ist, ist es eine spezifische Bereinigung auf mysql Seite, wenn ich Server sagen, dass ich Verbindung bin Schließen "Dann ist die Antwort" Nein, wenn Sie nur Ihren Client-Prozess beenden oder Socket zu schließen ist das gleiche wie das Aufrufen von connection.end() "