[英]back up and restore mysql database 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提示。
找到的CodeProject通過調用mysqldump.exe進行備份,並通過從C#程序(如Marc B建議)中調用mysql.exe進行還原。
作為替代方案,此CodeProject實際上會自行生成SQL語句,而不是調用外部程序:
(它不如使用mysqldump.exe / mysql.exe快或可靠,但是您可以從中學到很多。)
作為替代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();
}
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.