嘗試建立 cron 腳本來轉儲 MySQL 資料庫會導致空檔案保存成功。日誌列印也會產生一個空字串。
這個問題源自於所提供程式碼中的幾個問題:
以下程式碼修正了這些問題並提供了一個有效的解決方案:
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();
以上是儘管檔案保存成功,為什麼使用 Node.js 的 MySQL 資料庫轉儲會導致空檔?的詳細內容。更多資訊請關注PHP中文網其他相關文章!