0

このメソッドを使用して、大きなブロブを mySQL データベースに挿入しています (ブロブ サイズ ~40MB)。 ~15 秒後に例外がスローされます。ここでのすべては、20MB 未満のブロブで機能します。

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) を変更しました。

「画像」列はLONG​​BLOBです

4

3 に答える 3

0

列を LONGBLOB に変更してみてください

于 2013-03-28T17:24:50.177 に答える
0

私はかつて同様の問題を抱えていて、ログファイルを増やすのに役立ちました. my.ini の「innodb_log_file_size」変数を参照してください。通常、blob の 2 倍の大きさである必要があります。まだある時点(200MB以上など)ではまだ役に立たないかもしれませんが...

于 2013-06-04T23:50:51.017 に答える