Cambie el tamaño max_allowed_packet en el servidor MySQL
-
Cambie el tamaño
max_allowed_packet
en el servidor MySQL -
Cambie el tamaño
max_allowed_packet
en el servidor MySQL usando el sistema operativo Windows -
Cambie el tamaño
max_allowed_packet
en el servidor MySQL usando el sistema operativo Ubuntu
Este tutorial enseña cómo cambiar el tamaño de max_allowed_packet
en el servidor MySQL. Para aprender eso, usaremos dos sistemas operativos, Windows 10 y Linux (Ubuntu).
Cambie el tamaño max_allowed_packet
en el servidor MySQL
Si intentamos cargar archivos más grandes que el valor predeterminado de max_allowed_packet
, obtenemos un error que dice Paquetes más grandes que max_allowed_packet no están permitidos
.
Para eliminar este error, necesitamos cambiar el tamaño de max_allowed_packet
. Pero antes de eso, verifiquemos su valor predeterminado de la siguiente manera.
mysql> SHOW VARIABLES LIKE 'max_allowed_packet';
Producción :
+--------------------+---------+
| Variable_name | Value |
+--------------------+---------+
| max_allowed_packet | 4194304 |
+--------------------+---------+
1 row in set (0.06 sec)
En este momento, el tamaño de max_allowed_packet
es de 4 MB, equivalente a 4194304 Bytes. Teniendo en cuenta MySQL Docs, MySQL Client y Server tienen su propio tamaño max_allowed_packet
.
El valor que vemos arriba usando MOSTRAR VARIABLES COMO 'max_allowed_packet';
query es el valor en el lado del servidor MySQL. Es necesario aumentar el valor de max_allowed_packet
si queremos manejar los paquetes más grandes.
Supongamos que queremos cambiarlo a 50 MB. Podemos hacerlo actualizando el archivo de configuración en el lado del servidor (una sección llamada [mysqld]
en el archivo my.ini
), así como en el lado del cliente (una sección llamada [mysql]
o [cliente]
en el archivo my.ini
).
También podemos cambiar esta configuración mediante una consulta SQL si tenemos un privilegio (permiso) SUPER
. ¿Cómo? Veamos ambas soluciones a continuación.
Cambie el tamaño max_allowed_packet
en el servidor MySQL usando el sistema operativo Windows
-
Abra la línea de comandos de Windows y navegue por la ruta de instalación. MySQL Server está instalado en
C:\Program Files\MySQL\MySQL Server 8.0
si no cambió la ubicación predeterminada. -
Vaya a la carpeta
bin
usandocd bin
. -
Escriba
mysql -u root -p contraseña
para iniciar sesión en el servidor MySQL. Estamos entrando como usuarioroot
; puede utilizar sunombre de usuario
ycontraseña
. -
Una vez que estemos dentro, ejecute la siguiente consulta para cambiar el tamaño de
max_allowed_packet
en MySQL Server.mysql> SET GLOBAL max_allowed_packet=52428800;
-
Vuelva a ejecutar la siguiente consulta para confirmar el cambio.
mysql> SHOW VARIABLES LIKE 'max_allowed_packet';
Producción:
+--------------------+---------+ | Variable_name | Value | +--------------------+---------+ | max_allowed_packet | 52428800| +--------------------+---------+ 1 row in set (0.00 sec)
La solución que se proporciona a continuación es usar el archivo de configuración ubicado en la ruta predeterminada si ha instalado MySQL Server en la ubicación predeterminada. La ruta del archivo de configuración es C:\ProgramData\MySQL\MySQL Server 8.0\my.ini
.
-
Abra el archivo
mi.ini
. -
Busque la sección
[mysqld]
y agregue una línea debajo de esta sección.max_allowed_packet=50M
-
Guarde y cierre el archivo.
-
Reinicie el servidor MySQL para ver el cambio.
Cambie el tamaño max_allowed_packet
en el servidor MySQL usando el sistema operativo Ubuntu
Después de ingresar al servidor MySQL, podemos usar las mismas consultas en Ubuntu que usamos para el sistema operativo Windows. Los pasos se dan a continuación.
-
Abra la Terminal de Ubuntu y use
sudo su
para iniciar sesión como superusuario. -
Además, inicie sesión en MySQL Server.
-
Es bueno verificar el valor predeterminado o anterior de una variable antes de realizar cualquier cambio. Para eso, podemos usar la siguiente consulta.
mysql> SHOW VARIABLES LIKE 'max_allowed_packet';
Producción:
+--------------------+---------+ | Variable_name | Value | +--------------------+---------+ | max_allowed_packet | 67108864| +--------------------+---------+ 1 row in set (0.00 sec)
-
Ejecute la siguiente consulta para actualizar el valor de
max_allowed_packet
a 70 MB, que son 73400320 bytes.mysql> SET GLOBAL max_allowed_packet=73400320;
-
Podemos ejecutar
MOSTRAR VARIABLES COMO 'max_allowed_packet';
consulta para confirmar si se produce el cambio.
Si eres de los que se siente muy cómodo editando los archivos de configuración, la siguiente solución es especialmente para ti.
-
Abra el archivo de configuración ubicado en la ruta
/etc/mysql/mysql.conf.d/mysqld.cnf
.$ sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf
-
Busque el
max_allowed_packet
en una sección llamada[mysqld]
y cambie su valor a su elección. Si no está allí, agregue la siguiente línea debajo de[mysqld]
.Recuerde, lo estamos cambiando a 70M. Pero, puede escribir su número.
max_allowed_packet=70M
-
Guarde y salga del archivo.
-
Utilice
systemctl restart mysql
para reiniciar el servidor MySQL y ejecute lo siguiente para garantizar la actualización.mysql> SHOW VARIABLES LIKE 'max_allowed_packet';
Producción:
+--------------------+---------+ | Variable_name | Value | +--------------------+---------+ | max_allowed_packet | 73400320| +--------------------+---------+ 1 row in set (0.03 sec)