Sto avendo un problema con i campi BLOB nel mio database MySQL - quando carico file più grandi di circa 1MB ottengo un errore "I pacchetti più grandi di max_allowed_packet non sono ammessi".
Ecco cosa ho provato:
In MySQL Query Browser ho eseguito un show variables like 'max_allowed_packet'
che mi ha dato 1048576.
Poi ho eseguito la query set global max_allowed_packet=33554432
seguita da show variables like 'max_allowed_packet'
- mi dà 33554432 come previsto.
Ma quando riavvio il server MySQL torna magicamente a 1048576. Cosa sto facendo di sbagliato qui?
Domanda bonus, è possibile comprimere un campo BLOB?
Cambia nel file my.ini
o ~/.my.cnf
includendo la singola linea sotto la sezione [mysqld]
o [client]
nel tuo file:
max_allowed_packet=500M
poi riavvia il servizio MySQL e hai finito.
Vedi la documentazione per ulteriori informazioni.
La variabile max_allowed_packet può essere impostata globalmente eseguendo una query.
Tuttavia, se non la cambi nel file my.ini
(come suggerito da dragon112), il valore si resetterà al riavvio del server, anche se l'hai impostato globalmente.
Per cambiare il pacchetto massimo consentito per tutti a 1GB fino al riavvio del server:
SET GLOBAL max_allowed_packet=1073741824;
Questo errore è dovuto al fatto che i vostri dati contengono un valore più grande di quello impostato.
Basta scrivere max_allowed_packed=500M
.
o puoi calcolare che 500*1024k e usarlo al posto di 500M se vuoi.
Ora riavvia MySQL.