Comandos FLUSH de MySQL
Comandos FLUSH de MySQL
En el mundo del hosting, MySQL sigue siendo uno de los componentes más críticos para impulsar sitios web dinámicos, tiendas de e-commerce, sistemas de gestión de contenido (CMS) y plataformas SaaS. Ya sea que estés administrando un cluster de hosting compartido, una infraestructura VPS o servidores dedicados para clientes empresariales, tener control sobre las operaciones internas de MySQL es esencial.
Una herramienta poderosa que a menudo se pasa por alto es el comando FLUSH — una colección de instrucciones SQL administrativas que permiten recargar privilegios, limpiar logs, restablecer estados y garantizar la consistencia sin reiniciar el servidor.
¿Qué es FLUSH en MySQL?
La instrucción FLUSH se usa para:
Limpiar cachés internas
Recargar archivos de configuración (como tablas de privilegios)
Restablecer información de estado
Forzar a MySQL a escribir los datos en búfer en el disco
Solo los usuarios con el privilegio RELOAD (o superior, como SUPER) pueden ejecutar la mayoría de las operaciones FLUSH.
Comandos FLUSH comunes
1. 🔐 FLUSH PRIVILEGES
Recarga los privilegios de usuario desde las tablas de permisos en la base de datos mysql:
FLUSH PRIVILEGES;Cuándo usarlo:
Después de editar manualmente mysql.user u otras tablas de permisos.
Cuando cambias el acceso de usuario mediante instrucciones directas UPDATE en lugar de GRANT.
2. FLUSH TABLES
Cierra todas las tablas abiertas y fuerza a que se vuelvan a abrir. Útil en mantenimiento del sistema de archivos o copias de seguridad.
FLUSH TABLES;También puedes vaciar tablas específicas:
FLUSH TABLES table_name [, table_name] ...;Cuándo usarlo:
Antes de realizar copias de seguridad con herramientas externas (p. ej., mysqldump –single-transaction).
Después de escrituras a gran escala que puedan sobrecargar la caché de la tabla.
3. FLUSH QUERY CACHE
Elimina todos los resultados de consultas de la caché de consultas (si está habilitada):
FLUSH QUERY CACHE;Nota: Query cache está obsoleta y eliminada en MySQL 8.0.
4. FLUSH LOGS
Cierra y vuelve a abrir todos los archivos de log (general log, error log, binary log, relay log).
FLUSH LOGS;O vacía un tipo específico:
FLUSH BINARY LOGS;FLUSH ERROR LOGS;FLUSH ENGINE LOGS;FLUSH SLOW LOGS;Cuándo usarlo:
Después de la rotación de logs
Cuando los logs se mueven o archivan
Para restablecer logs para depuración o cumplimiento
5. FLUSH HOSTS
Restablece la caché de hosts de conexiones de cliente fallidas.
FLUSH HOSTS;Cuándo usarlo:
Cuando se recibe el error:
Host 'xxx' is blocked because of many connection errors
6. FLUSH STATUS
Restablece la mayoría de las variables de estado a cero (no afecta a contadores globales como Uptime).
FLUSH STATUS;Cuándo usarlo:
Antes de realizar benchmarking o pruebas de rendimiento.
Para obtener métricas limpias con SHOW STATUS.
7. FLUSH TABLES WITH READ LOCK
Vacía y bloquea todas las tablas, evitando escrituras de otras sesiones.
FLUSH TABLES WITH READ LOCK;Cuándo usarlo:
Para copias de seguridad con instantáneas consistentes (p. ej., con LVM o herramientas de copia de archivos).
Importante: desbloquea siempre manualmente con
UNLOCK TABLES;
8. FLUSH DES_KEY_FILE
Recarga los archivos de clave DES usados en el antiguo DES_ENCRYPT()/DES_DECRYPT() (legacy).
FLUSH DES_KEY_FILE;9. FLUSH USER_RESOURCES
Restablece los contadores de límites de recursos por usuario (como MAX_QUERIES_PER_HOUR).
FLUSH USER_RESOURCES;Cuándo usarlo:
Restablecimiento a mitad de ciclo para usuarios con recursos limitados.
Comandos obsoletos/eliminados
FLUSH QUERY CACHE está eliminado en MySQL 8.0.
FLUSH DES_KEY_FILE es legacy.
Considera alternativas más nuevas en MySQL 8.0 como RESET PERSIST.
Permisos requeridos
La mayoría de las operaciones FLUSH requieren:
RELOAD privilege
SUPER o SYSTEM_VARIABLES_ADMIN (para operaciones sensibles en MySQL 8+)
Ejemplo:
GRANT RELOAD ON *.* TO 'admin'@'localhost';Conclusión
La familia de comandos FLUSH es esencial para el control administrativo en MySQL. Ya sea que estés administrando privilegios, logs o estados de caché, entender cómo y cuándo usar FLUSH ayuda a mantener un rendimiento y una fiabilidad óptimos del servidor sin necesidad de reiniciarlo. Úsalo con prudencia y con los privilegios adecuados, especialmente en entornos de producción.


