2

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

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

谢谢。

4

4 回答 4

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

于 2011-02-17T07:12:24.843 回答
3

作为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();
        }
    }
}
于 2018-05-05T01:10:31.827 回答
2

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

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

(它不如使用 mysqldump.exe / mysql.exe 快速或可靠,但您可以从中学到很多东西。)

于 2012-04-05T18:36:20.663 回答
0

你可以试试http://www.devart.com/dotconnect/mysql/docs/Devart.Data.MySql~Devart.Data.MySql.MySqlDump.html

于 2011-02-17T07:03:56.093 回答