私は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 を使用するほど高速でも信頼性も高くありませんが、多くのことを学ぶことができます。)
http://www.devart.com/dotconnect/mysql/docs/Devart.Data.MySql~Devart.Data.MySql.MySqlDump.htmlを試すことができます