Pipedream MySQL steps in n8n
Updated 2026-10-21 · 3 min read · n8n: MySQL (Native n8n node)
MySQL steps in Pipedream write events into a database, look up records for enrichment, and poll tables for new rows. n8n has a native MySQL node with full CRUD plus raw SQL; the polling sources become a Schedule Trigger.
The n8n side
MySQL node (n8n-nodes-base.mySql) operations:
| Operation | Use |
|---|---|
| Delete | Delete rows (or truncate / drop table) |
| Execute SQL | Any query, with Query Parameters |
| Insert | Insert rows mapped from items |
| Insert or Update | Upsert on a unique column |
| Select | Read rows with conditions, sort, limit |
| Update | Update rows matched on one column |
There is no MySQL trigger node.
What maps where
Pipedream (app mysql) |
In n8n | Status |
|---|---|---|
| Execute SQL Query, Execute Query | Execute SQL | manual |
| Create Row | Insert | manual |
| Update Row | Update (or Insert or Update) | manual |
| Delete Row | Delete | manual |
| Find Row | Select | manual |
| Execute Stored Procedure | Execute SQL with CALL proc($1) and Query Parameters |
manual |
| New Row (polling), New Row (Custom Query) | Schedule Trigger + Select / Execute SQL | manual |
| New or Updated Row (polling) | Schedule Trigger + Select on updated_at |
manual |
| New Column, New Table (polling) | Schedule Trigger + Execute SQL on information_schema |
manual |
The converter does not map MySQL steps yet. Each one arrives as a placeholder with its props (table, columns, SQL) in a comment, and the report lists the MySQL credential. Unlike PostgreSQL custom queries, MySQL SQL is not copied into a node automatically.
MySQL credentials in n8n
MySQL credential: Host, Database, User, Password, Port (3306), Connect Timeout, SSL options and an optional SSH tunnel. If n8n runs in Docker and MySQL on the same host, use host.docker.internal or the container name instead of localhost. Allow n8n's IP in the database firewall.
Replacing a New Row source
- Schedule Trigger every minute (or as often as the Pipedream source ran).
- Execute SQL:
SELECT * FROM orders WHERE id > $1 ORDER BY id LIMIT 500, with the last seen ID as parameter. - Store the highest ID for the next run, for example with workflow static data in a Code node, or use Remove Duplicates on
id.
Typical migration: webhook to MySQL
Pipedream: HTTP trigger → MySQL Create Row (leads).
n8n: Webhook → MySQL → Insert (table leads, map columns). For dedupe on email, use Insert or Update with email as the matching column.
MySQL migration pitfalls
- Composite keys. Update matches on a single column; for composite keys use Execute SQL.
- Decimals as strings by default; enable Output Decimals as Numbers if downstream nodes do math.
- Query parameters. Expressions inside SQL strings are an injection risk; use parameters.
- SSH tunnel. The node supports it; the AI Agent's MySQL tool does not.
How to move your MySQL workflows
- Export from Pipedream.
- Upload on /convert; the free report lists every MySQL step with its SQL and props.
- Get the n8n JSON: 1 workflow is free; full export: $3 per workflow, $19 minimum — coming soon.
Code steps using mysql2 can be checked in the code step checker. Related: PostgreSQL, Supabase, MongoDB.
FAQ
- Is there a MySQL trigger in n8n?
- No. Pipedream's New Row and New or Updated Row sources poll the table; in n8n use a Schedule Trigger plus Select (or Execute SQL) with a cursor column such as id or updated_at.
- How do I keep SQL injection out of converted queries?
- Use Query Parameters in Execute SQL: write $1, $2 in the query and pass the values in the Query Parameters field instead of building the SQL string with expressions.
- Why do DECIMAL columns come back as strings?
- That is the default of the MySQL driver. Turn on the Output Decimals as Numbers option in the node if you need numbers.
- Do MySQL steps convert automatically?
- No. They arrive as placeholders with their props (table, SQL, values), and the report lists the MySQL credential to create.