【问题标题】:back up and restore mysql database c#备份和恢复mysql数据库c#
【发布时间】:2010-11-20 17:22:34
【问题描述】:

我正在寻找一种方法,我可以通过 c# 从 mysql 备份一些数据库(文件备份)。 还可以通过 c# 将数据库从备份文件恢复到某个新位置。

你能帮我想出一些如何从这里开始的想法吗?

谢谢。

【问题讨论】:

  • 基本上你想从 C# 中复制 mysqldump,此时你最好只调用 mysqldump。
  • 我现在找到了这个,我认为它可以为我完成这项工作
  • @MarcB 一些 ASP.NET 虚拟主机阻止使用 MySqlDump 在他们的服务器上执行。

标签: c# .net mysql database-backups database-restore


【解决方案1】:
ProcessStartInfo startInfo = new ProcessStartInfo("cmd.exe");
Process.Start(startInfo);
startInfo.Arguments = "mysqldump -u admin -p admin test > c:\backupfile.sql";
Process.Start(startInfo);

如果需要,可以使用 startInfo.WindowStyle 隐藏 dos 提示。

【讨论】:

    【解决方案2】:

    作为 MySqlDump 的替代方案,您可以尝试 MySqlBackup.NEThttps://github.com/MySqlBackupNET/MySqlBackup.Net

    例子

    备份/导出 MySQL 数据库

    string constring = "server=localhost;user=root;pwd=qwerty;database=test;";
    
    // Important Additional Connection Options
    constring += "charset=utf8;convertzerodatetime=true;";
    
    string file = "C:\\backup.sql";
    
    using (MySqlConnection conn = new MySqlConnection(constring))
    {
        using (MySqlCommand cmd = new MySqlCommand())
        {
            using (MySqlBackup mb = new MySqlBackup(cmd))
            {
                cmd.Connection = conn;
                conn.Open();
                mb.ExportToFile(file);
                conn.Close();
            }
        }
    }
    

    导入/恢复 MySQL 数据库

    string constring = "server=localhost;user=root;pwd=qwerty;database=test;";
    
    // Important Additional Connection Options
    constring += "charset=utf8;convertzerodatetime=true;";
    
    string file = "C:\\backup.sql";
    
    using (MySqlConnection conn = new MySqlConnection(constring))
    {
        using (MySqlCommand cmd = new MySqlCommand())
        {
            using (MySqlBackup mb = new MySqlBackup(cmd))
            {
                cmd.Connection = conn;
                conn.Open();
                mb.ImportFromFile(file);
                conn.Close();
            }
        }
    }
    

    【讨论】:

      【解决方案3】:

      您找到的 CodeProject 通过调用 mysqldump.exe 进行备份,并通过在 C# 程序中调用 mysql.exe 进行恢复(如 Marc B 推荐的那样)。

      作为替代方案,此 CodeProject 实际上自己生成 SQL 语句,而不是调用外部程序:

      (虽然没有mysqldump.exe / mysql.exe那么快和可靠,但是你可以从中学到很多东西。)

      【讨论】:

      • 您好,您提供的软件(链接)有一个新版本(1.3)。您对该版本有何评论?
      【解决方案4】:
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-11
      • 1970-01-01
      • 1970-01-01
      • 2017-08-14
      • 1970-01-01
      相关资源
      最近更新 更多