MySQL: max_allowed_packet

MySQL en Linux. Aplicable a MySQL 5 y superiores.

Para limitar el tamaño de un paquete que pueda ser transmitido hacia o desde un MySQL server o cliente utilizamos la variable max_allowed_packet.

Cada versión de MySQL lleva por defecto un valor para max_allowed_packet. Por ejemplo MySQL 5 es de 1 Mb y en MySQL 5.5 es de 16 Mb.

Para saber cual es el valor en nuestro MySQL:

mysql> select @@global.max_allowed_packet;
--------------
select @@global.max_allowed_packet
--------------

+-----------------------------+
| @@global.max_allowed_packet |
+-----------------------------+
|                     1048576 |
+-----------------------------+
1 row in set (0.00 sec)



Para modificar el valor de max_allowed_packet tenemos dos opciones:

1.- Ejecutando la instrucción select global max_allowed_packet.

Lo podemos especificar en bytes:

mysql> set global max_allowed_packet=33554432;
--------------
set global max_allowed_packet=33554432
--------------

Query OK, 0 rows affected (0.00 sec)

mysql> select @@global.max_allowed_packet;
--------------
select @@global.max_allowed_packet
--------------

+-----------------------------+
| @@global.max_allowed_packet |
+-----------------------------+
|                    33554432 |
+-----------------------------+
1 row in set (0.00 sec)



O bien con Mb, eso si, lo debemos mutiplicar nosotros mismos:

mysql> set global max_allowed_packet=64*1024*1024;
--------------
set global max_allowed_packet=64*1024*1024
--------------

Query OK, 0 rows affected (0.00 sec)

mysql> select @@global.max_allowed_packet;
--------------
select @@global.max_allowed_packet
--------------

+-----------------------------+
| @@global.max_allowed_packet |
+-----------------------------+
|                    67108864 |
+-----------------------------+
1 row in set (0.00 sec)



2.- Lo editamos en el archivo my.cnf

> vi /etc/my.cnf
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
# Default to using old password format for compatibility with mysql 3.x
# clients (those using the mysqlclient10 compatibility package).
old_passwords=1

# Disabling symbolic-links is recommended to prevent assorted security risks;
# to do so, uncomment this line:
# symbolic-links=0

max_allowed_packet=5M

[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
# /etc/init.d/mysqld restart

Cada vez que ser reinicie el servicio mysqld el valor de la variable max_allowed_packet será el que viene por defecto con la versión, excepto si lo hemos especificado en el archivo de configuración my.cnf.



Si el post te ha ayudado a salir de un marrón, te ha servido pá lo que sea o simplemente te ha gustado y quieres colaborar puedes pinchar en los anuncios ;)

Leave a Reply

Your email address will not be published. Required fields are marked *