Versuche, ein Cron-Skript zum Dumpen einer MySQL-Datenbank zu erstellen, führen trotzdem zu einer leeren Datei erfolgreiche Dateispeicherung. Beim Drucken des Protokolls wird auch eine leere Zeichenfolge ausgegeben.
Das Problem ist auf mehrere Probleme im bereitgestellten Code zurückzuführen:
Der folgende Code behebt diese Probleme und bietet eine funktionierende Lösung:
var mysql_backup = function() { this.backup = ''; this.mysql = require('mysql'); this.init = function() { this.connection = this.mysql.createConnection({ user: 'root', password: 'root', database: 'test' }); // Connect to the database this.connection.connect(function(err) { if (err) console.log(err); db.get_tables(function() {}); }); }; this.query = function(sql, callback) { this.connection.query(sql, function (error, results, fields) { if (error) { throw error; } if (results.length > 0) { callback(results); } }); }; this.get_tables = function(callback){ var counter = 0; var me = this; this.query('SHOW TABLES', function(tables) { for (table in tables) { counter++; me.query('SHOW CREATE TABLE ' + tables[table].Tables_in_test, function(r){ for (t in r) { me.backup += "DROP TABLE " + r[t].Table + "\n\n"; me.backup += r[t]["Create Table"] + "\n\n"; } counter--; if (counter === 0) { me.save_backup(); me.connection.destroy(); } }); } }); }; this.save_backup = function() { var fs = require('fs'); fs.writeFile("./backup_test.txt", this.backup, function(err) { if(err) { console.log(err); } else { console.log("The file was saved!"); } }); } }; var db = new mysql_backup; db.init();
Erwägen Sie die Verwendung von:
Das obige ist der detaillierte Inhalt vonWarum führt mein MySQL-Datenbank-Dump mit Node.js trotz erfolgreicher Dateispeicherung zu einer leeren Datei?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!