MySQL is an open-source relational database used for transactional applications, analytics warehouses, and reporting workloads at companies of every size. Connecting MySQL to Parabola lets analysts and ops teams query MySQL on a schedule, blend the results with other systems, and push cleaned data back into MySQL tables, without writing a custom ETL pipeline.Documentation Index
Fetch the complete documentation index at: https://parabola.io/docs/llms.txt
Use this file to discover all available pages before exploring further.
Pull from MySQL
The Pull from MySQL step connects to a MySQL server and brings query results into your flow. Pick a table for the defaultselect * pull, or write a custom SQL query to filter, join, and aggregate before the data reaches Parabola.
How to authenticate
Click Authorize and enter your connection details:
If your database doesn’t require a value (a password, for example), leave that field blank. If you’re not sure where to find these values, check your connection string or ask your database administrator.
- Hostname
- Username
- Password (optional)
- Database
- Port (optional, defaults to 3306)

Configure your settings
To narrow the result set, write SQL in the Query (optional) field. A targeted query keeps the pull fast and avoids dragging entire historical tables into the flow. Two AI buttons live next to the query field:- Help write query — describe the data you want in plain language (for example, “Show me the last 30 days of shipped orders”) and AI drafts the SQL for you.
- Optimize query — paste an existing query to fix syntax errors, improve performance, or refine the logic.
Send to MySQL
The Send to MySQL step inserts, updates, or upserts rows in a remote MySQL database, useful for syncing reconciled data back into operational tables or pushing transformed records to a reporting database.How to authenticate
Configure your settings
Once connected, pick the destination table from the dropdown. Maximum Connections — defaults to 20. Parabola splits your rows across this many concurrent connections to write faster. Every database has a maximum number of connections it accepts, so set Parabola’s value to no more than 50–60% of that ceiling. Above the ceiling and the step errors out; at the ceiling and nothing else can connect to the database while the flow runs. Talk to whoever owns the database if you’re not sure. Operations — pick how rows should land:- Insert — adds new rows. Make sure duplicates are okay; Parabola won’t dedupe for you.
- Upsert — updates existing rows where a primary key matches, inserts the rest. Requires a unique identifier column on the database table and a matching column in your Parabola data.
- Update — only updates existing rows. Same primary-key requirement as upsert. Rows that don’t match are skipped.
How errors are handled
Send to MySQL processes rows top to bottom. Unlike most Parabola export steps, it doesn’t halt on a row failure. It logs the error, skips the row, and keeps going. If every row succeeds the step finishes in a normal state; if any row was skipped due to errors the step finishes in a failure state with the bad rows logged.Available data
The MySQL integration works against any database the connection has access to:- Pull: any table or view in the connected database, plus arbitrary SQL queries (joins, aggregations, window functions, subqueries).
- Send: any table the connection has insert/update privileges on.
- AI query helpers for drafting and optimizing SQL inside the step.
Common use cases
- Build reports that combine app data with marketing and finance: Pull from MySQL, join with Shopify orders, Klaviyo engagement, and Stripe payouts, and drop the result in Google Drive or Smartsheet on a schedule.
- Push reconciled data into a reporting database: Clean and join data from across the business in Parabola, then write the result back into a MySQL reporting table for BI tools to consume.
- Move data from MySQL into a warehouse: Pull from MySQL and push to Snowflake, BigQuery, or Redshift so analysts can query production data alongside the rest of the stack.
- Sync product or customer data to marketing tools: Pull users from MySQL and push them into Mailchimp, HubSpot, or Klaviyo so lifecycle campaigns stay current without engineering work.
- Trigger ops alerts on database conditions: Run a query against MySQL on a schedule, then send a Slack alert when a count, sum, or status flag crosses a threshold.
- Reconcile internal MySQL data with vendor systems: Compare MySQL records with data from NetSuite, QuickBooks Online, or Fulfil to catch sync gaps before close.
Tips for using Parabola with MySQL
- Filter in SQL, not in Parabola. Add
whereclauses, date ranges, and column selection to your query so only the rows you need cross the wire. Faster runs and cleaner downstream logic. - Use
limitwhile building. Addlimit 100while you’re wiring up the flow. Remove it before scheduling so the production run pulls everything. - Allow-list Parabola’s IPs. If your MySQL server restricts inbound traffic, add Parabola’s IP ranges to your firewall or security group so the connection isn’t blocked.
- Cast types before sending. Send to MySQL writes everything as strings. Make sure target columns accept strings, or cast on the database side. Null values arrive as empty strings, not nulls.
- Match column names exactly. Use a Rename columns step before sending so Parabola column names line up with the MySQL table. Mismatches cause skipped rows.
- Match cadence to use case. Every 15 minutes for ops dashboards, daily for finance reports, weekly for cohort analysis.
FAQ
Can Parabola write null values to MySQL?
No. The Send to MySQL step writes empty strings instead of nulls. If your column needs trueNULL, write the row, then run an UPDATE ... SET column = NULL WHERE column = '' on the database side, or handle the conversion in a stored procedure on the destination.
Does Parabola support SSL connections to MySQL?
Connection encryption depends on the server’s configuration. For databases that require SSL, use the connection-string options exposed in the auth modal. If your setup needs a tunnel or specific cert handling, contact help@parabola.io for guidance.How do I send only changed rows to MySQL?
Use the Upsert operation with a primary key, or filter rows in Parabola to only the changed records before the Send to MySQL step. Many teams pull a snapshot of the destination, diff it against the new data, and only send rows that differ.Why does the step skip some rows instead of failing?
Send to MySQL is designed not to halt on a single bad row. It logs the error, skips the row, and continues. The step ends in a failure state if any row was skipped, with the errors visible in the run log so you can fix and re-run.Can I run multiple statements in the Pull query?
The Pull from MySQL step expects a single query. Wrap multi-statement logic in a view or stored procedure on the database side, then pull from the view, or chain multiple Pull steps and join in Parabola.With MySQL and Parabola connected, the queries your team runs by hand every week, the exports they paste into spreadsheets, and the manual writebacks into operational tables all become flows that run on a schedule.
