C# mySQL在插入大blob时断开连接
我正在使用此方法将一个大blob插入mySQL数据库(blob大小~40MB) 大约15秒后,它抛出一个异常。这里的所有内容都适用于小于~20MB的blobC# mySQL在插入大blob时断开连接,c#,mysql,.net,blob,C#,Mysql,.net,Blob,我正在使用此方法将一个大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)
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:远程主机强制关闭了现有连接
我已经更改了网络读取超时(600)、网络写入超时(600)、等待超时(28800)、从网络超时(3600)和交互超时(28800)
“image”列是一个LONGBLOB尝试将该列更改为LONGBLOB我曾经遇到过类似的问题,增加日志文件会有所帮助。请参阅my.ini中的“innodb_log_file_size”变量-它通常需要是blob的两倍大。尽管在某些情况下(如200MB以上),它可能仍然没有帮助…我也面临同样的问题。
设置以下变量对我有帮助
set global bulk_insert_buffer_size=99999744;
什么类型的“图像”斑点?对于那个数据类型来说,它可能太大了。@Rob它现在是一个长blob,但仍然不起作用。我试过了,但仍然不起作用,请查看我的问题以进行编辑。