MySQL o MariaDB, uno de los sistemas de gestión de bases de datos más populares, ofrece una gran cantidad de variables que se pueden personalizar para afinar el rendimiento y el comportamiento de las bases de datos. En este artículo, explicaremos cómo personalizar las variables de MySQL o MariaDB, como max_allowed_packet, read_buffer_size o wait_timeout, en un servidor Plesk.
Es importante señalar que los valores personalizados no deben exceder los límites definidos por MySQL. Por ejemplo, el valor más alto para max_allowed_packet es de 1073741824 bytes (1024M) y para wait_timeout – 31536000 segundos.
Para Plesk en Linux
- Conéctate al servidor Plesk vía SSH.
- Abre el archivo my.cnf en un editor de texto. En este ejemplo, estamos usando el editor vi:En distribuciones basadas en AlmaLinux/RockyLinux/CentOS/RHEL:
# vi /etc/my.cnf
En distribuciones basadas en Debian/Ubuntu:# vi /etc/mysql/my.cnf
- Añade tus variables personalizadas debajo de la sección [mysqld]. Si la variable también es aplicable a las secciones [client], [mysql] y [mysqldump], añádela allí también.En este ejemplo, estamos añadiendo las directivas max_allowed_packet y wait_timeout:
[mysqld]
wait_timeout = 31536000
max_allowed_packet = 1024M
[mysqldump]
max_allowed_packet = 1024M
- Guarda los cambios y cierra el archivo.
- Reinicia el servicio MySQL:
# service mysql restart || service mariadb restart || service mysqld restart
Para Plesk en Windows Server
- Conéctate al servidor Plesk vía RDP.
- Abre el archivo %plesk_dir%Databases\MySQL\my.ini en un editor de texto.
- Añade tus variables personalizadas bajo la sección [mysqld]. Si la variable también es aplicable a las secciones [client] y [mysqldump], añádela allí también.En este ejemplo, estamos añadiendo max_allowed_packet y wait_timeout:
[mysqld]
wait_timeout = 31536000
max_allowed_packet = 1024M
[mysqldump]
max_allowed_packet = 1024M
- Guarda los cambios y cierra el archivo.
- Reinicia el servicio MySQL a través de los Servicios de Windows o el Monitor de Servicios de Plesk.
En resumen, personalizar las variables de MySQL o MariaDB puede ser un método eficaz para optimizar el rendimiento de las bases de datos en un servidor Plesk. Sin embargo, es importante hacerlo con cuidado para evitar la configuración de valores que podrían dañar la estabilidad del sistema.
Error ‘Got packet bigger than ‘max_allowed_packet’ bytes’ al volcar una tabla o base de datos
En ocasiones, al trabajar con MySQL, podemos encontrarnos con errores al intentar hacer una copia de seguridad de una base de datos. Uno de estos errores puede ser ‘Got packet bigger than ‘max_allowed_packet’ bytes when dumping table’, un problema que puede ser desconcertante debido a su mensaje engañoso.
Para ilustrar este problema, compartiremos un caso que nos encontramos recientemente. El mensaje de error completo del respaldo «fallido» fue:
Te volverás loco porque verás la variable max_allowed_packet configurada con memoria de sobra, pero el problema es que tienes que añadir en la configuración del MySQL o MariaDB la variable aplicada para mysqldump:
[mysqldump]
max_allowed_packet = 1024M