簡體   English   中英

備份和還原mysql數據庫C#

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM