web-dev-qa-db-ja.com

JDatabaseDriver-> replacePrefix()...バイトの許容メモリサイズを使い果たしました

Issue Trackerアイテム#33711で報告

3MBを超えるBLOBをデータベースに挿入しようとすると、次のエラーが発生します。

致命的なエラー:1638行目の...\libraries\joomla\database\driver.phpで許可されたメモリサイズ134217728バイトを使い果たしました(4252768バイトを割り当てようとしました)

JDatabaseDriver->replacePrefix( )がそんなに多くのメモリを消費するのはなぜですか?

5
Valentin Despa

replacePrefix()には基本的に問題はありません。

で説明されているように、事前定義された設定(_max_allowed_packet_)には大きすぎる文字列をMySQLに送信し、エラー_MySQL server has gone away_を報告しています。 MySQLサーバーは大きなダンプのインポートを妨害しなくなりました。

現在、Joomlaはこれを一時的なエラーであると見なし、クエリを再試行して、メモリがなくなるまでexecute()メソッドを繰り返し実行します。

この問題の解決策は、_max_allowed_packet_の_[mysqld]_の下の_my.ini_の値をより大きな値に増やすことです。

6
Valentin Despa