【发布时间】:2016-12-09 18:25:46
【问题描述】:
我构建了一个应用程序来从服务器备份我的 MYSQL 数据库,日复一日,数据库变得比以前大,有时会触发错误(从我的角度来看):
消息:超时已过期。在操作完成之前超时时间已过或服务器没有响应。 完整:MySql.Data.MySqlClient.MySqlException (0x80004005):超时已过期。在操作完成之前超时时间已过或服务器没有响应。 ---> System.TimeoutException: IO 操作超时 在 MySql.Data.MySqlClient.TimedStream.StopTimer() 在 MySql.Data.MySqlClient.TimedStream.Read(字节 [] 缓冲区,Int32 偏移量,Int32 计数) 在 System.IO.BufferedStream.Read(字节 [] 数组,Int32 偏移量,Int32 计数) 在 MySql.Data.MySqlClient.MySqlStream.ReadFully(流流,字节 [] 缓冲区,Int32 偏移量,Int32 计数) 在 MySql.Data.MySqlClient.MySqlStream.LoadPacket() 在 MySql.Data.MySqlClient.MySqlStream.ReadPacket() 在 MySql.Data.MySqlClient.NativeDriver.FetchDataRow(Int32 statementId,Int32 列) 在 MySql.Data.MySqlClient.Driver.FetchDataRow(Int32 statementId,Int32 列) 在 MySql.Data.MySqlClient.ResultSet.GetNextRow() 在 MySql.Data.MySqlClient.ResultSet.NextRow(CommandBehavior 行为) 在 MySql.Data.MySqlClient.MySqlDataReader.Read() 在 MySql.Data.MySqlClient.ExceptionInterceptor.Throw(异常异常) 在 MySql.Data.MySqlClient.MySqlConnection.Throw(异常前) 在 MySql.Data.MySqlClient.MySqlConnection.HandleTimeoutOrThreadAbort(异常前) 在 MySql.Data.MySqlClient.MySqlDataReader.Read() 在 MySql.Data.MySqlClient.MySqlBackup.Export_RowsData(字符串表名,字符串 selectSQL) 在 MySql.Data.MySqlClient.MySqlBackup.Export_Rows(字符串表名,字符串 selectSQL) 在 MySql.Data.MySqlClient.MySqlBackup.Export_TableRows() 在 MySql.Data.MySqlClient.MySqlBackup.ExportStart() 在 MySql.Data.MySqlClient.MySqlBackup.ExportToFile(字符串文件路径) 在 MYSQL_Auto_Backup.Form1.Backup() 中的 c:\Users\Belal\Documents\Visual Studio 2012\Projects\MYSQL Auto Backup\MYSQL Auto Backup\Form1.cs:line 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();
}
}
}
【问题讨论】:
标签: c# mysql connection-timeout