我正在寻找一种方法,我可以通过 c# 从 mysql 备份一些数据库(文件备份)。并且还通过 c# 将数据库从备份文件恢复到某个新位置。
你能帮我一些想法如何从这里开始吗?
谢谢。
我正在寻找一种方法,我可以通过 c# 从 mysql 备份一些数据库(文件备份)。并且还通过 c# 将数据库从备份文件恢复到某个新位置。
你能帮我一些想法如何从这里开始吗?
谢谢。
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 提示。
作为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();
}
}
}
您找到的 CodeProject 通过调用 mysqldump.exe 进行备份,并通过从 C# 程序中调用 mysql.exe 进行恢复(如 Marc B 推荐的那样)。
作为替代方案,此 CodeProject 实际上自己生成 SQL 语句,而不是调用外部程序:
(它不如使用 mysqldump.exe / mysql.exe 快速或可靠,但您可以从中学到很多东西。)