Tengo un problema con los campos BLOB en mi base de datos MySQL - cuando subo archivos de más de 1MB aproximadamente me sale un error Packets larger than max_allowed_packet are not allowed.
.
Esto es lo que he intentado:
En MySQL Query Browser he ejecutado un show variables like 'max_allowed_packet'
que me ha dado 1048576.
Luego ejecuto la consulta set global max_allowed_packet=33554432
seguida de show variables like 'max_allowed_packet'
- me da 33554432 como se esperaba.
Pero cuando reinicio el servidor MySQL mágicamente vuelve a ser 1048576. ¿Qué estoy haciendo mal aquí?
Pregunta extra, ¿es posible comprimir un campo BLOB?
Cambie en el archivo my.ini
o ~/.my.cnf
incluyendo la única línea bajo la sección [mysqld]
o [client]
en su archivo:
max_allowed_packet=500M
luego reinicia el servicio MySQL y ya está.
Consulte la documentación para obtener más información.
La variable max_allowed_packet puede establecerse globalmente ejecutando una consulta.
Sin embargo, si no la cambias en el archivo my.ini
(como sugirió dragon112), el valor se restablecerá cuando el servidor se reinicie, incluso si lo estableces globalmente.
Para cambiar el paquete máximo permitido para todos a 1GB hasta que el servidor se reinicie:
SET GLOBAL max_allowed_packet=1073741824;
Este error se debe a que sus datos contienen un valor mayor al establecido.
Sólo tiene que escribir el max_allowed_packed=500M
.
o puede calcular que 500*1024k y usar eso en vez de 500M si quiere.
Ahora reinicie el MySQL.