n8n con MySQL es una de las combinaciones más poderosas que podés armar si trabajás con automatizaciones y bases de datos. Si llegaste hasta acá, probablemente tenés datos almacenados en MySQL y querés conectarlos con otros servicios sin escribir código backend. Bueno, estás en el lugar correcto: n8n con MySQL te permite que tus flujos de trabajo lean, escriban y actualicen información directamente en tu base de datos de forma completamente automática.
Ya sea que necesites sincronizar tu base de datos con Google Sheets, enviar alertas cuando detectes datos anómalos o registrar leads desde un formulario, la integración de n8n con MySQL lo resuelve todo. En esta guía te voy a mostrar paso a paso cómo configurar la conexión, qué operaciones podés hacer y 5 casos de uso reales para que empieces a sacarle provecho desde hoy.
Cómo configurar n8n con MySQL: Conexión paso a paso
Requisitos previos para conectar n8n con MySQL
Antes de crear tu primer flujo con n8n con MySQL, necesitás asegurarte de que el servidor MySQL sea accesible desde n8n. Dependiendo de tu setup, la configuración varía:
- Si n8n está en el mismo servidor: usá
localhosto127.0.0.1 - Si n8n está en otro servidor: abrí el puerto 3306 o configurá un tunnel SSH
- Si usás MySQL en la nube (PlanetScale, Railway, Amazon RDS, etc.): vas a tener un host público que podés usar directamente
Un dato importante: siempre verificá que el firewall permita la conexión entre ambos servicios. Este es el error más común cuando la gente empieza a trabajar con n8n con MySQL y no logra establecer la conexión. Si necesitás repasar los fundamentos de n8n antes de avanzar, te recomiendo nuestra guía completa de n8n en español.
Crear las credenciales de n8n con MySQL
El proceso para agregar tus credenciales es bastante directo:
- Andá a Credentials → Add Credential
- Buscá MySQL en el buscador
- Configurá los siguientes campos:
- Host: IP o hostname del servidor MySQL
- Database: nombre de la base de datos a la que querés conectarte
- User: usuario MySQL (lo ideal es crear uno específico con permisos mínimos)
- Password: contraseña del usuario
- Port: 3306 (por defecto)
- SSL: activalo si tu MySQL lo requiere
- Hacé clic en Test Connection para verificar que todo funciona
Si el test da verde, ya estás listo para empezar a automatizar. Si falla, revisá que el host, puerto y credenciales sean correctos, y que no haya un firewall bloqueando la conexión.
Buena práctica de seguridad: usuario dedicado para n8n con MySQL
No uses el usuario root para conectar n8n con MySQL. Creá un usuario específico con solamente los permisos que necesita tu automatización:
CREATE USER 'n8n_user'@'%' IDENTIFIED BY 'contraseña_segura';
GRANT SELECT, INSERT, UPDATE ON mi_base_datos.* TO 'n8n_user'@'%';
FLUSH PRIVILEGES;De esta forma, si alguna vez hay un problema de seguridad, el daño potencial queda limitado. Nunca otorgues permisos de DROP o DELETE a menos que tu flujo realmente lo necesite.

Operaciones del nodo MySQL en n8n: qué podés hacer
Una vez que tenés la conexión funcionando, el nodo MySQL en n8n te ofrece dos modos principales de operación:
- Execute Query: te permite escribir SQL libre. Funciona para cualquier operación: SELECT, INSERT, UPDATE, DELETE y hasta consultas complejas con JOINs
- Insert: inserta filas de forma segura sin necesidad de escribir SQL manualmente. n8n mapea los campos por vos
¿Cuándo usar cada uno? Usá Execute Query para SELECTs, operaciones con JOINs y lógica compleja. Usá Insert cuando solo necesitás agregar datos nuevos y querés reducir el riesgo de errores de sintaxis SQL. Si estás familiarizado con el nodo HTTP Request de n8n, vas a notar que el nodo MySQL es mucho más directo porque no necesitás configurar headers ni autenticación por separado.

Caso de uso 1: Sincronizar n8n con MySQL y Google Sheets
Este es probablemente el caso más común cuando trabajás con n8n con MySQL. La idea es exportar datos de tu base de datos a Google Sheets para que tu equipo pueda analizarlos sin necesidad de tener acceso directo al servidor. Si ya usás Google Sheets en tus flujos, podés complementar esto con nuestra guía de sincronización bidireccional entre CRM y Google Sheets.
El flujo queda así:
Schedule Trigger (cada día a las 7:00)
→ MySQL — Execute Query (SELECT)
→ Google Sheets — Clear (limpiar hoja)
→ Google Sheets — Append (añadir datos actualizados)Query de ejemplo para extraer un resumen de clientes:
SELECT
c.id,
c.nombre,
c.email,
c.empresa,
COUNT(p.id) as total_pedidos,
SUM(p.importe) as total_gastado,
MAX(p.fecha) as ultimo_pedido
FROM clientes c
LEFT JOIN pedidos p ON c.id = p.cliente_id
GROUP BY c.id
ORDER BY total_gastado DESC
LIMIT 1000Con este flujo, cada mañana tu equipo tiene un reporte fresco en Google Sheets sin mover un dedo. Ideal para equipos de ventas, marketing o dirección que necesitan ver datos pero no saben SQL.

Caso de uso 2: Alertas de datos anómalos con n8n con MySQL
Otra aplicación muy valiosa de n8n con MySQL es la monitorización automática de tu base de datos. La idea es que n8n revise periódicamente ciertos indicadores y te avise cuando algo no cuadre.
El flujo de alertas funciona así:
- Schedule Trigger (cada 15 minutos)
- MySQL — consulta por pedidos sin procesar en más de 2 horas
- IF — si hay resultados, continúa; si no, se detiene
- Slack/Email/Telegram — envía la alerta al equipo responsable
SELECT id, cliente_id, importe, fecha_creacion
FROM pedidos
WHERE estado = 'pendiente'
AND fecha_creacion < NOW() - INTERVAL 2 HOUR
ORDER BY fecha_creacion ASCEste tipo de monitoreo te puede ahorrar horas de problemas. Imaginate que un pedido se queda trabado y nadie se da cuenta hasta que el cliente reclama. Con n8n con MySQL, eso no pasa más.
Caso de uso 3: Registrar leads automáticamente en MySQL con n8n
Si tenés un formulario de contacto o landing page, podés usar n8n con MySQL para guardar cada lead directamente en tu base de datos. Este flujo es especialmente útil si tu aplicación web ya usa MySQL como backend.
Webhook (recibe datos del formulario)
→ MySQL — Insert (guarda el lead en la tabla)
→ Email — Envía confirmación al lead
→ Slack — Notifica al equipo de ventasPara recibir datos externos, podés usar un webhook en n8n como trigger. Cada vez que alguien completa el formulario, n8n inserta los datos en MySQL y dispara las notificaciones correspondientes. También podés configurar una notificación por WhatsApp automatizado con n8n para que el equipo de ventas reaccione al instante.
Caso de uso 4: Sincronizar n8n con MySQL y tu CRM
Si usás un CRM como HubSpot, Pipedrive o cualquier otro, podés mantener la información sincronizada entre tu CRM y MySQL usando n8n con MySQL. El flujo típico funciona en ambas direcciones:
- MySQL → CRM: cuando se crea un nuevo cliente en tu aplicación, n8n lo agrega automáticamente al CRM
- CRM → MySQL: cuando un vendedor actualiza el estado de un deal en el CRM, n8n actualiza el registro correspondiente en MySQL
-- Ejemplo: buscar clientes nuevos de las últimas 24 horas
SELECT id, nombre, email, telefono, empresa, fecha_registro
FROM clientes
WHERE fecha_registro >= NOW() - INTERVAL 24 HOUR
AND sincronizado_crm = 0Después del INSERT en el CRM, podés usar otro nodo MySQL para marcar el registro como sincronizado:
UPDATE clientes SET sincronizado_crm = 1 WHERE id = {{$json.id}}Caso de uso 5: Reportes automáticos con n8n con MySQL por email
Este caso combina n8n con MySQL y el envío de emails para generar reportes automáticos. En vez de que alguien entre a la base de datos manualmente cada semana, n8n hace la consulta, formatea los resultados y los envía por correo.
Schedule Trigger (lunes a las 8:00)
→ MySQL — Execute Query (resumen semanal)
→ Function — Formatear datos en tabla HTML
→ Send Email — Enviar reporte al equipoSELECT
DATE(fecha) as dia,
COUNT(*) as total_ventas,
SUM(importe) as ingresos,
AVG(importe) as ticket_promedio
FROM pedidos
WHERE fecha >= DATE_SUB(CURDATE(), INTERVAL 7 DAY)
AND estado = 'completado'
GROUP BY DATE(fecha)
ORDER BY diaCon este flujo, cada lunes tu equipo recibe un email con el resumen de ventas de la semana anterior. Sin intervención manual, sin errores de copia, sin excusas.
Errores comunes al usar n8n con MySQL y cómo evitarlos
Después de trabajar con muchos flujos de n8n con MySQL, estos son los problemas más frecuentes que veo:
- Error de conexión por firewall: el puerto 3306 está bloqueado. Solución: revisá las reglas de tu firewall o grupo de seguridad en AWS/GCP
- Timeout en consultas pesadas: si tu query tarda más de 30 segundos, n8n puede cortar la conexión. Solución: optimizá la consulta con índices o limitá los resultados con LIMIT
- Caracteres especiales en contraseñas: algunos caracteres como
@o#pueden causar problemas. Solución: usá una contraseña alfanumérica con símbolos simples - SQL injection accidental: si estás concatenando valores directamente en tu query, hay riesgo de inyección SQL. Solución: usá parámetros o el modo Insert del nodo
- Permisos insuficientes: el usuario no tiene permisos para la operación que intentás hacer. Solución: verificá los GRANT del usuario MySQL
n8n con MySQL vs n8n con PostgreSQL: ¿cuál elegir?
Si estás evaluando qué base de datos usar con n8n, la respuesta corta es: usá la que ya tengas. Tanto n8n con MySQL como n8n con PostgreSQL funcionan de manera muy similar dentro de n8n. La configuración, los nodos y las operaciones disponibles son prácticamente iguales.
Las diferencias principales son del lado de la base de datos, no de n8n:
- MySQL: más popular en hosting compartido, WordPress y aplicaciones PHP. Excelente rendimiento en lecturas
- PostgreSQL: más robusto para consultas complejas, mejor soporte de JSON nativo y tipos de datos avanzados
Si tu aplicación ya corre sobre MySQL, no tiene sentido migrar solo por n8n. Ambas integraciones son igual de estables y completas.
¿Listo para automatizar tu base de datos con n8n con MySQL?
Como viste a lo largo de esta guía, n8n con MySQL te abre un mundo de posibilidades para automatizar todo lo que tiene que ver con tu base de datos. Desde reportes automáticos hasta sincronización con CRMs, pasando por alertas inteligentes y registro de leads, las combinaciones son prácticamente infinitas.
Mi recomendación es que empieces con el caso de uso que más dolor te quite hoy. Si tu equipo te pide reportes todas las semanas, automatizá eso primero. Si los leads se pierden entre el formulario y el CRM, ese es tu siguiente flujo. La clave es empezar simple y escalar desde ahí.
Si querés seguir explorando integraciones potentes con n8n, te recomiendo revisar cómo automatizar Google Drive con n8n para complementar tus flujos de datos, o explorar cómo crear un agente de IA con n8n para llevar tus automatizaciones al siguiente nivel.