私のMYSQL DBをサーバからバックアップするアプリケーションを構築しました。データベースは以前よりも大きくなりました。私の視点からは何度かエラーが発生します:MySQLのバックアップでタイムアウトが期限切れになった - C#
メッセージ:タイムアウトが切れています。操作が完了する前にタイムアウト時間が経過したか、サーバーが応答していません。 Full:MySql.Data.MySqlClient.MySqlException(0x80004005):タイムアウトが切れています。操作が完了する前にタイムアウト時間が経過したか、サーバーが応答していません。 ---> System.TimeoutException:IO操作のタイムアウト MySql.Data.MySqlClient.TimedStream.StopTimer() MySql.Data.MySqlClient.TimedStream.Read(Byte []バッファ、Int32オフセット、Int32カウント)で at (ストリームストリーム、Byte []バッファ、Int32オフセット、Int32カウント) at MySql.Data.MySqlClient.MySqlStream.ReadFully MySql.Data.MySqlClient.Driver.FetchDataRowでMySql.Data.MySqlClient.NativeDriver.FetchDataRow(のInt32 STATEMENTID、のInt32列)でMySql.Data.MySqlClient.MySqlStream.ReadPacketで.MySqlClient.MySqlStream.LoadPacket() () (Int32 statementId、Int32 columns) at MySql.Data.MySqlClient.ResultSet.GetNextRow()MySql.Data.MySqlClientでMySql.Data.MySqlClient.ExceptionInterceptor.Throw(例外例外) でMySql.Data.MySqlClient.ResultSet.NextRow(たCommandBehavior挙動) MySql.Data.MySqlClient.MySqlDataReader.Readで() でMySql.Data.MySqlClient.MySqlBackup.Export_RowsData(文字列tableNameのでMySql.Data.MySqlClient.MySqlDataReader.Readで.MySqlConnection.Throw MySql.Data.MySqlClient.MySqlConnection.HandleTimeoutOrThreadAbortに(例外EX) (例外EX) () 、文字列selectSQL)MySql.Data.MySqlClient.MySqlBackup.ExportStartでMySql.Data.MySqlClient.MySqlBackup.Export_Rows(文字列tableNameの文字列selectSQL)MySql.Data.MySqlClient.MySqlBackup.Export_TableRowsで で() ()$at MySql.Data.MySqlClient.MySqlBackup.ExportToFile(文字列ファイルパス) at MYSQL_Auto_Backup.Form1.Backup()(c:\ Users \ Belal \ Documents \ Visual Studio 2012 \ Projects \ MYSQL自動バックアップ\ MYSQL自動バックアップ\ Form1)。 CS:ライン132
コード:
// Backup...
DateTime Time = DateTime.Now;
year = Time.Year;
month = Time.Month;
day = Time.Day;
hour = Time.Hour;
minute = Time.Minute;
second = Time.Second;
millisecond = Time.Millisecond;
//Save file to Path with the current date as a filename
string path;
path = txb_Path.Text + year + "-" + month + "-" + day + "--" + hour + "-" + minute + "-" + second + ".sql";
file = path;
using (MySqlConnection conn = new MySqlConnection(connectionString))
{
using (MySqlCommand cmd = new MySqlCommand())
{
using (MySqlBackup mb = new MySqlBackup(cmd))
{
cmd.Connection = conn;
conn.Open();
mb.ExportToFile(file);
conn.Close();
}
}
}
mb.Command.CommandTimeout = int.MaxValue;を追加しました。 –