резервное копирование и восстановление базы данных MySQL C # - PullRequest
2 голосов
/ 20 ноября 2010

Я ищу способ, как я могу с помощью c # сделать резервную копию какой-либо базы данных из mysql (резервное копирование файла).А также через c # восстановление базы данных из файла резервной копии в новое место.

Можете ли вы помочь мне с некоторыми идеями, как начать работу здесь.

Спасибо.

Ответы [ 4 ]

4 голосов
/ 17 февраля 2011
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.

2 голосов
/ 05 апреля 2012

Кодовый проект, который вы обнаружили, выполняет резервное копирование, вызывая mysqldump.exe и восстанавливает, вызывая mysql.exe из программы на C # (как рекомендуется Марк Б.).

В качестве альтернативы этот кодовый проект фактическигенерирует операторы SQL вместо вызова внешней программы:

(Это не так быстро и надежно, как использование mysqldump.exe / mysql.exe, но вы можете многому научиться из него.)

1 голос
/ 05 мая 2018

В качестве альтернативы 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();
        }
    }
}
0 голосов
/ 17 февраля 2011
...