Recursos · Integración n8n

Integración MySQL n8nAutomatiza MySQL con n8n.

Tu base de datos guarda lo que tus herramientas se pasan en hojas de cálculo. La integración MySQL n8n expone 6 operaciones sobre un recurso Database, desde un Select con condiciones hasta SQL libre. MySQL no trae nodo trigger: el flujo arranca con un Schedule Trigger o un Webhook.

Reseñas verificadas en Trustpilot · Agencia de IA, automatización y growth

Por qué automatizar

¿Qué hace en realidad la integración MySQL n8n?

La integración MySQL n8n es el nodo MySQL que viene incluido con n8n: un recurso Database y 6 operaciones que hablan con tu servidor, Select, Insert, Insert or Update, Update, Delete y Execute SQL para todo lo demás. n8n abre la conexión con el credential guardado (las credenciales que registras una sola vez), ejecuta la instrucción y devuelve las filas al nodo siguiente en forma de items. Del lado de la base no se instala nada.

El primer escenario es el más pedido: sacar cifras sin abrir un cliente SQL. Un Schedule Trigger arranca cada lunes, database.select lee los pedidos de la semana con una condición sobre la columna de fecha, y las filas llegan a un canal de Slack con el resumen ya montado.

El segundo va en sentido contrario: llegan datos y hay que guardarlos. Filas sacadas de una pestaña de Google Sheets, un CSV leído por un nodo anterior o un formulario del sitio terminan en database.insert. Cuando los nombres de los campos ya coinciden con los de las columnas, Auto-Map Input Data to Columns se encarga del emparejamiento.

El tercero mantiene dos sistemas alineados. database.upsert recibe una Column to Match On, normalmente un email o un identificador externo, y decide fila por fila: actualiza si existe, crea si no. Repetir la misma importación no genera duplicados, y por eso se puede programar sin vigilarla.

Cuando falta una operación, aquí no hay API a la que recurrir: MySQL habla SQL, así que la salida de emergencia es database.executeQuery. Joins, agregados, una cláusula WHERE sobre dos columnas, todo lo que las cinco operaciones con formulario no exponen pasa por ahí, usando Query Parameters en lugar de concatenar cadenas. Quien ya automatiza Postgres reconocerá el nodo, porque está organizado igual.

Conviene tener presentes dos límites antes de dibujar el flujo. No existe nodo trigger de MySQL, así que cada ejecución empieza con un Schedule Trigger, un Webhook o el trigger de otra herramienta. Y el nodo devuelve los valores DECIMAL como cadenas de texto por defecto, algo que sorprende al primer flujo que intenta sumarlos. El resto es trabajo de base de datos normal: la Reseña n8n analiza cómo se comporta la plataforma con volúmenes grandes, y el Curso n8n construye estos flujos paso a paso.

Conexión

¿Cómo conectar MySQL con n8n?

  1. 01

    Crear el usuario de la base

    Todo empieza en MySQL: hace falta una cuenta de usuario en el servidor, con los permisos que correspondan a lo que hará el flujo. Con permiso de lectura basta para un nodo que solo hace Select; las inserciones, actualizaciones y borrados necesitan permiso de escritura sobre las tablas afectadas. Ese nombre de cuenta y su contraseña son los que escribirás en User y Password.

  2. 02

    Rellenar la conexión a la base

    En n8n, abre el menú Credentials y crea un credential MySQL, reutilizable en todos los flujos desde el desplegable del nodo. Host recibe el nombre de host o la IP, Database el nombre de la base, Port el puerto de escucha, 3306 si nadie lo ha cambiado. Connect Timeout se cuenta en milisegundos y vale 10000 por defecto.

  3. 03

    Activar SSL o un túnel SSH

    SSL espera el contenido de tus certificados: ca.pem en CA Certificate, client-key.pem en Client Private Key, client-cert.pem en Client Certificate. SSH Tunnel mete la conexión en un canal cifrado, con SSH Host, SSH Port, SSH User y contraseña o clave privada.

Acciones

¿Qué sabe hacer el nodo MySQL ?

El nodo MySQL expone 6 operaciones en 1 recursos. Para cada una: el nodo tal como lo configuras en n8n, los campos obligatorios y nuestras notas de campo.

Matriz recursos × operaciones
RecursoUpdateDeleteExecute SQLInsertSelectInsert or Update
Database✓✓✓✓✓✓

Database

6 operaciones
01

Delete table or rows

database.deleteTable

Lo que ves en n8n

Notas y casos de uso

Detrás de una sola operación conviven tres resultados distintos, y quien decide es el campo Command: vaciar la tabla, borrar filas sueltas o eliminar la tabla para siempre.

Parámetros clave

  • Command: truncate borra los datos y conserva la estructura de la tabla, delete solo quita las filas que cumplen las condiciones, drop elimina ambos de forma permanente.
  • Select Rows: las condiciones que se aplican cuando Command vale delete; si se deja vacío, se van todas las filas de la tabla.
  • Combine Conditions: AND deja solo las filas que cumplen todas las condiciones, OR las que cumplen al menos una.
Casos de uso
vaciar una tabla de preparación antes de una recarga nocturna, o borrar las filas de un cliente que pide su supresión.
02

Execute a SQL query

database.executeQuery

Lo que ves en n8n

Notas y casos de uso

Aquí pasa todo lo que las operaciones con formulario no cubren: la consulta viaja tal cual al servidor, sea un join entre varias tablas, un agregado o una actualización condicional.

Parámetros clave

  • Query: obligatorio, la instrucción SQL, por ejemplo SELECT id, name FROM product WHERE id < 40.
  • Query Parameters: una lista de valores separados por comas, referenciados en la consulta como $1, $2, $3; la defensa contra la inyección SQL, porque los datos nunca entran en la consulta.
  • Query Batching: single envía una consulta para todos los items, independently una consulta por item, transaction deshace todo si una instrucción falla.
Casos de uso
modificar una fila identificada por dos columnas a la vez, algo que la operación Update no puede apuntar.
03

Insert rows in a table

database.insert

Lo que ves en n8n

Notas y casos de uso

Un item de entrada, una fila creada. El nodo escribe el INSERT por ti. La única duda real es cómo se corresponden los campos del item con las columnas de la tabla.

Parámetros clave

  • Data Mode: autoMapInputData asocia las propiedades del item con las columnas del mismo nombre, defineBelow deja fijar cada columna de destino a mano.
  • Values to Send: en modo manual, los pares de columna y valor que se escriben en la fila, normalmente desde una expresión como {{ $json.email }}.
  • Replace Empty Strings with NULL: útil cuando las filas vienen de una hoja de cálculo y las celdas en blanco llegan como cadenas vacías.
Casos de uso
cargar un CSV en una tabla MySQL, o archivar cada formulario recibido.
04

Insert or update rows in a table

database.upsert

Lo que ves en n8n

Notas y casos de uso

Esta operación existe para no dejar duplicados: busca la fila, la actualiza si la encuentra y la crea si no.

Parámetros clave

  • Column to Match On: obligatorio, la columna que sirve para encontrar la fila a actualizar; tiene que ser única y la operación nunca la modifica.
  • Value of Column to Match On: el valor con el que se compara esa columna, y los items sin coincidencia crean filas nuevas.
  • Data Mode: automático cuando las propiedades del item ya llevan el nombre exacto de las columnas, manual cuando el origen las llama de otra forma.
Casos de uso
una tabla de clientes alimentada por una exportación del CRM y emparejada por la columna de email, para que una segunda importación no duplique.
05

Select rows from a table

database.select

Lo que ves en n8n

Notas y casos de uso

La lectura se configura sin escribir SQL: eliges la tabla, añades condiciones, ordenas, y las filas salen convertidas en items que el resto del flujo puede usar.

Parámetros clave

  • Return All: activado, vuelven todas las filas que cumplen las condiciones; desactivado, Limit fija el número máximo de filas devueltas.
  • Select Rows y Operator: las condiciones, incluido LIKE, donde % sustituye a cualquier número de caracteres y _ a uno solo.
  • Sort y Direction: el orden del resultado, ASC o DESC, antes de salir del nodo.
  • Output Columns: quedarte solo con las columnas que el nodo siguiente necesita.
Casos de uso
recuperar cada mañana los pedidos del día anterior para montar un informe.
06

Update rows in a table

database.update

Lo que ves en n8n

Notas y casos de uso

De aquí no sale nada nuevo: el nodo localiza las filas que coinciden y reescribe las columnas indicadas, sin crear ninguna fila adicional.

Parámetros clave

  • Column to Match On: obligatorio, la columna que identifica las filas a modificar, y que la escritura deja intacta.
  • Value of Column to Match On: el valor con el que se compara, a menudo {{ $json.id }} que llega del nodo anterior.
  • Values to Send: las columnas a reescribir y sus nuevos valores.
Casos de uso
pasar un pedido a estado pagado en cuanto entra el cobro. Un límite que conviene recordar: una tabla cuyas filas se identifican por dos columnas no se puede apuntar aquí, y el relevo lo toma Execute SQL.
Necesitas ayuda

¿Necesitas ayuda para automatizar MySQL con n8n?

El equipo te responde directamente.

Cada mensaje lo lee una persona.

FAQ

MySQL y n8n: preguntas frecuentes

01¿La integración MySQL n8n es gratis?
Sí. El nodo MySQL viene incluido con n8n: no hay que instalar nada ni pagar ningún extra del lado de n8n, tanto si usas n8n Cloud como una instancia auto-alojada en Community Edition con licencia Sustainable Use. Un flujo se comporta igual en los dos casos. Lo que queda fuera de la cuenta es el coste del propio servidor MySQL, que depende de dónde viva la base de datos y no tiene relación con n8n. El credential se crea una sola vez en el menú Credentials y se reutiliza en todas partes, así que un segundo flujo contra la misma base solo cuesta el tiempo de elegirlo en la lista.
02¿Qué credenciales necesita el nodo MySQL?
Una conexión a la base de datos, y es el único método de autenticación que admite el nodo. Rellenas Host, Database, User, Password y Port, con 3306 como puerto habitual de MySQL, más un Connect Timeout expresado en milisegundos. La cuenta debe existir antes en el servidor MySQL, con los permisos que correspondan a lo que hará n8n: solo lectura, o lectura y escritura si el flujo inserta y actualiza. Dos opciones refuerzan la conexión. SSL espera el contenido de tus archivos ca.pem, client-key.pem y client-cert.pem. SSH Tunnel lleva el tráfico por una conexión cifrada, autenticando con contraseña o con una clave privada y su passphrase.
03¿Qué límites tiene el nodo MySQL en n8n?
Tres merecen atención antes de montar nada. La lectura se corta pronto si Return All está desactivado, porque entonces Limit fija el número máximo de filas devueltas. La operación Update apunta a una sola columna, así que una tabla cuyas filas se identifican con dos columnas tiene que pasar por Execute SQL, donde la cláusula WHERE puede nombrar las dos. Y los tipos no siempre sobreviven al viaje: los valores DECIMAL vuelven como cadenas de texto a propósito, para evitar la pérdida de precisión de los números de JavaScript, salvo que actives Output Decimals as Numbers. Para columnas NUMERIC y BIGINT de más de 16 dígitos, pon Output Large-Format Numbers As en text.
04¿Puede un flujo reaccionar a una fila nueva en MySQL?
Por sí solo no. n8n no incluye ningún nodo trigger de MySQL, así que nada vigila la base de datos por ti. Un flujo que toca MySQL arranca en otro sitio: un Schedule Trigger que se dispara cada cierto intervalo, seguido de un Select que lee las filas añadidas desde la última ejecución; un Webhook de n8n, es decir, una URL a la que un servicio externo llama cuando ocurre algo de su lado; o el trigger de otra herramienta del mismo flujo. La versión programada cubre casi todas las necesidades, y cuanto más cerca del momento lo quieras, más corto será el intervalo. Vigila la opción Connections Limit cuando varios flujos consultan el mismo servidor, porque un valor demasiado alto se paga en rendimiento.
05¿n8n o Make para MySQL?
Depende sobre todo de dónde quieras que vivan los datos. n8n se instala en tu propio servidor con Docker o npm, o se usa en n8n Cloud, y el flujo es idéntico en ambos casos: una base que nunca sale de tu red puede automatizarse con una instancia que tampoco sale. Make está alojado únicamente, sin opción de auto-alojamiento, y se factura por operación, algo que cambia las cuentas en cuanto un flujo recorre miles de filas. Los dos montan los flujos de forma visual y los dos funcionan. La prueba honesta son tus propias restricciones: alojamiento, control de los datos, modelo de coste y qué lógica visual lee más rápido tu equipo.