it-swarm.dev

JDatabaseDriver-> replacePrefix () Dimensione della memoria consentita di ... byte esaurita

Segnalato tramite Issue Tracker Articolo # 33711

Quando si tenta di inserire un BLOB> 3 MB nel database, si verifica il seguente errore:

Errore irreversibile: dimensione della memoria consentita di 134217728 byte esauriti (tentato di allocare 4252768 byte) in ...\librerie\joomla\database\driver.php sulla riga 1638

Perché JDatabaseDriver->replacePrefix( ) sta mangiando così tanta memoria?

5
Valentin Despa

Fondamentalmente non c'è nulla di sbagliato in replacePrefix().

Quello che realmente accade è che stai inviando a MySQL una stringa troppo grande per un'impostazione predefinita (max_allowed_packet) E che sta segnalando l'errore MySQL server has gone away, Come spiegato in Il server MySQL è andato via ostacolando l'importazione di dump di grandi dimensioni.

Ora, Joomla pensa che questo sia solo un errore temporaneo e riprova la query, rieseguendo il metodo execute() più e più volte, fino a quando la memoria si esaurisce.

La soluzione a questo problema è aumentare il valore di max_allowed_packet In [mysqld] In my.ini A un valore maggiore.

6
Valentin Despa