Cómo cambiar variables de configuración en MySQL de forma segura
MySQL tiene variables dinámicas (se cambian en caliente) y variables que solo aplican al arranque. El error clásico es cambiar algo con SET GLOBAL, ver que funciona, y perderlo en el siguiente reinicio. MySQL 8.0 resuelve esto con SET PERSIST.
- 1
Consulta el valor actual antes de tocar nada
Anota el valor original para poder revertir. Nunca cambies una variable sin saber en qué estaba.
SHOW GLOBAL VARIABLES LIKE 'max_connections'; - 2
Cambia una variable dinámica en caliente
SET GLOBAL aplica de inmediato sin reiniciar, pero el cambio se pierde al reiniciar el servidor. Sirve para probar.
SET GLOBAL max_connections = 500; - 3
Haz el cambio persistente
SET PERSIST aplica el valor y lo guarda para que sobreviva a reinicios, escribiéndolo en mysqld-auto.cnf. Es la forma recomendada en MySQL 8.0.
SET PERSIST max_connections = 500; - 4
Para variables que solo aplican al arranque, usa my.cnf
Algunas variables (como innodb_buffer_pool_size en versiones antiguas o parámetros de arranque) van en el archivo de configuración y requieren reinicio del servicio.
[mysqld] max_connections = 500 # Luego reinicia el servicio: # sudo systemctl restart mysql
// el error común
Subir valores como innodb_buffer_pool_size o max_connections sin medir la RAM disponible puede impedir que MySQL arranque o hacer que el sistema operativo mate el proceso por falta de memoria. Cambia una variable a la vez, mide el efecto, y ten a mano el valor anterior para revertir.
// cuándo conviene un experto
El tuning de configuración depende del hardware, la carga y el patrón de consultas: copiar un my.cnf de internet suele hacer más daño que bien. En dba.mx ajustamos parámetros con base en métricas reales de tu servidor, con techo cerrado.
Agenda un Escaneo — desde USD $550Esta guía es orientativa y usa comandos de referencia. En producción, adapta a tu versión y prueba en un ambiente seguro primero.