我正在寻找一种方法,我可以通过c#从mysql(文件备份)备份一些数据库。 并且还可以通过c#将数据库从备份文件恢复到一些新的位置。
你能帮我提一些如何开始的想法。
感谢。
答案 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)