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
¿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.
¿Cómo conectar MySQL con n8n?
- 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.
- 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,
3306si nadie lo ha cambiado. Connect Timeout se cuenta en milisegundos y vale10000por defecto. - 03
Activar SSL o un túnel SSH
SSL espera el contenido de tus certificados:
ca.pemen CA Certificate,client-key.pemen Client Private Key,client-cert.pemen 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.
¿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.
| Recurso | Update | Delete | Execute SQL | Insert | Select | Insert or Update |
|---|---|---|---|---|---|---|
| Database | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
Índice de operaciones
Database
6 operacionesDelete table or rows
database.deleteTableLo 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:
truncateborra los datos y conserva la estructura de la tabla,deletesolo quita las filas que cumplen las condiciones,dropelimina 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:
ANDdeja solo las filas que cumplen todas las condiciones,ORlas que cumplen al menos una.
Execute a SQL query
database.executeQueryLo 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:
singleenvía una consulta para todos los items,independentlyuna consulta por item,transactiondeshace todo si una instrucción falla.
Insert rows in a table
database.insertLo 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:
autoMapInputDataasocia las propiedades del item con las columnas del mismo nombre,defineBelowdeja 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.
Insert or update rows in a table
database.upsertLo 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.
Select rows from a table
database.selectLo 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,
ASCoDESC, antes de salir del nodo. - Output Columns: quedarte solo con las columnas que el nodo siguiente necesita.
Update rows in a table
database.updateLo 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.
¿Necesitas ayuda para automatizar MySQL con n8n?
El equipo te responde directamente.
Cada mensaje lo lee una persona.

