【问题标题】:Making mysqldump backup in c# doesn't retrieve data在 c# 中进行 mysqldump 备份不会检索数据
【发布时间】:2019-05-23 09:18:48
【问题描述】:

我有一个从查询创建备份副本的代码,该查询从过去一年中获取较旧的寄存器并将它们保存到 *.sql 文件中。但是我发现的问题是当我打开 .sql 文件时它是空的。我已经在命令提示符下尝试了查询,它运行良好。

我是使用 mysql 的新手,我已经阅读了这些帖子来创建我的代码(并寻找答案): Backing up Database in MySQL using C#

C# and mysqldump

How to take backup of MySQL Database

try
{
    string strBackupFileName = GetBackUpFileName();
    StreamWriter strBackupFile = new StreamWriter(strBackupFileName);

    ProcessStartInfo psInfo = new ProcessStartInfo();
    psInfo.FileName = @"c:\Users\current.user\source\xampp\mysql\bin\mysqldump.exe";
    psInfo.RedirectStandardInput = false;
    psInfo.RedirectStandardOutput = false;
    psInfo.Arguments = "- u root -h localhost --databases --hex-blob -n -t dashboard --tables dashboard.backup --where='updated_at < NOW() - INTERVAL 365 DAY'";
    psInfo.UseShellExecute = false;
    psInfo.RedirectStandardOutput = true;
    Process backup_process = Process.Start(psInfo);

    string stdout;
    stdout = backup_process.StandardOutput.ReadToEnd();
    strBackupFile.WriteLine(stdout);
    backup_process.WaitForExit();
    strBackupFile.Close();
    backup_process.Close();
    MessageBox.Show("Backup done at file:" + strBackupFileName);
}
catch (Exception ex)
{
    MessageBox.Show("Error during the backup: \n\n" + ex.Message);
}

当我运行程序时,我看到 mysqldump 不会“等待”执行该过程(当我手动执行时,它至少需要 25-30 秒),它会打开一个命令提示符窗口并立即关闭。

【问题讨论】:

    标签: c# mysql


    【解决方案1】:

    解决方案很简单,在: psInfo.Arguments = "-u root -h localhost --databases --hex-blob -n -t dashboard --tables dashboard.backup --where='updated_at

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-11-18
      • 2015-08-11
      • 2011-05-25
      • 1970-01-01
      • 2011-08-05
      • 1970-01-01
      相关资源
      最近更新 更多