备份并恢复mysql数据库c#

时间:2010-11-20 17:22:34

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

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

你能帮我提一些如何开始的想法。

感谢。

4 个答案:

答案 0 :(得分:4)

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提示符。

答案 1 :(得分:2)

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

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

(它不像使用mysqldump.exe / mysql.exe那么快或可靠,但你可以从中学到很多东西。)

答案 2 :(得分:1)

作为MySqlDump的替代方案,您可以尝试 MySqlBackup.NET https://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 :(得分:0)