3MBを超えるBLOBをデータベースに挿入しようとすると、次のエラーが発生します。
致命的なエラー:1638行目の...\libraries\joomla\database\driver.phpで許可されたメモリサイズ134217728バイトを使い果たしました(4252768バイトを割り当てようとしました)
JDatabaseDriver->replacePrefix( )
がそんなに多くのメモリを消費するのはなぜですか?
replacePrefix()
には基本的に問題はありません。
で説明されているように、事前定義された設定(_max_allowed_packet
_)には大きすぎる文字列をMySQLに送信し、エラー_MySQL server has gone away
_を報告しています。 MySQLサーバーは大きなダンプのインポートを妨害しなくなりました。
現在、Joomlaはこれを一時的なエラーであると見なし、クエリを再試行して、メモリがなくなるまでexecute()
メソッドを繰り返し実行します。
この問題の解決策は、_max_allowed_packet
_の_[mysqld]
_の下の_my.ini
_の値をより大きな値に増やすことです。