我正在使用此方法将一个大 blob 插入我的 mySQL 数据库(Blob 大小 ~40MB) 约 15 秒后它会引发异常。这里的整个事情都适用于小于~20MB的blob。
protected override int internalExecuteInt(string SQL, byte[] Blob)
{
using (MySqlCommand cmd = new MySqlCommand(SQL, connection))
{
if (Blob != null)
{
cmd.CommandTimeout = 600;
cmd.Parameters.AddWithValue("@blob", Blob);
}
return cmd.ExecuteNonQuery();
}
}
...
internalExecuteInt("INSERT INTO images (image) VALUES (@blob)", myLargeBlob);
...
例外:
MySqlException:命令执行过程中遇到致命错误。
内部异常:
SocketException:一个现有的连接被远程主机强行关闭
我已经更改了 net_read_timeout (600)、net_write_timeout (600)、wait_timeout (28800)、slave_net_timeout (3600) 和 interactive_timeout (28800)。
“图像”列是 LONGBLOB