
在尝试转储 MySQL 数据库时,会出现文件已创建但仍为空的问题。本文检查了此行为的潜在原因,并根据给定的代码片段提供了解决方案。
最初的问题源于在发出查询之前无法连接到数据库。此外,connection.destroy() 方法被过早调用,导致挂起的 SQL 调用中断。
为了纠正这些问题,进行了以下修改:
<code class="javascript">var mysql_backup = function(){
//...
this.connection.connect(function (err, empty) {
//...
});
//...
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_mvc,
function(r){
//...
counter--;
if (counter === 0){
me.save_backup();
me.connection.destroy();
}
}
)
}
});
};
//...
};
var db = new mysql_backup;
db.init();
db.get_tables();</code>为了增强代码的可读性和有效性,进一步的改进可以包括:
通过纠正连接问题、适当安排回调执行顺序以及跟踪未完成的 SQL 调用,可以解决文件清空问题,从而成功“转储”MySQL 数据库。
以上是为什么我的 NodeJS MySQL 转储文件为空以及如何修复它?的详细内容。更多信息请关注PHP中文网其他相关文章!