MySQL 데이터베이스를 덤프하기 위해 cron 스크립트를 생성하려고 시도했지만 빈 파일이 생성되었습니다. 파일 저장 성공. 로그 인쇄에서도 빈 문자열이 생성됩니다.
이 문제는 제공된 코드의 여러 문제로 인해 발생합니다.
다음 코드는 이러한 문제를 수정하고 작동하는 솔루션을 제공합니다.
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 중국어 웹사이트의 기타 관련 기사를 참조하세요!