Jeg har et problem med BLOB-felt i MySQL-databasen min - når jeg laster opp filer som er større enn ca. 1 MB, får jeg en feil `Pakker som er større enn max_allowed_packet er ikke tillatt.
Her er hva jeg har prøvd:
I MySQL Query Browser kjørte jeg en vis variabler som 'max_allowed_packet'
som ga meg 1048576.
Deretter kjører jeg spørringen set global max_allowed_packet=33554432
etterfulgt av `show variables like 'max_allowed_packet' - det gir meg 33554432 som forventet.
Men når jeg starter MySQL-serveren på nytt, går den magisk tilbake til 1048576. Hva gjør jeg galt her?
Bonusspørsmål, er det mulig å komprimere et BLOB-felt?
Endre i filen my.ini
eller ~/.my.cnf
ved å inkludere den ene linjen under [mysqld]
eller [client]
i filen:
max_allowed_packet=500M
start deretter MySQL-tjenesten på nytt, og du er ferdig.
Se dokumentasjon for mer informasjon.
Variabelen max_allowed_packet kan settes globalt ved å kjøre en spørring.
Men hvis du ikke endrer den i filen my.ini
(slik dragon112 foreslo), vil verdien tilbakestilles når serveren startes på nytt, selv om du angir den globalt.
For å endre den maksimalt tillatte pakken for alle til 1 GB til serveren starter på nytt:
SET GLOBAL max_allowed_packet=1073741824;
Denne feilen kommer på grunn av at dataene dine inneholder større enn angitt verdi.
Bare skriv ned max_allowed_packed=500M
.
eller du kan beregne at 500 * 1024k og bruke det i stedet for 500M hvis du vil.
Nå er det bare å starte MySQL på nytt.