MySQL Database Extractor
Pricing
Pay per event
MySQL Database Extractor
Connects to a MySQL database and extracts rows from selected tables, returning each row as a flat JSON object. Supports connection strings, SSL, table filtering, and row limits.
Pricing
Pay per event
Rating
5.0
(1)
Developer
ParseForge
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
0
Monthly active users
10 days ago
Last modified
Categories
Share
MySQL Database Extractor
Extract data from any MySQL database into clean CSV, JSON, Excel, or XML. Connect with a connection string or individual credentials, pick specific tables, and get every row as a flat record. No API needed.
MySQL databases hold your operational data, but getting that data out for analysis or migration usually means writing custom scripts or using clunky export tools. This Actor connects directly to your MySQL server, reads the tables you specify, and returns each row as a structured record. It works with self-hosted MySQL, cloud databases like Amazon RDS or Google Cloud SQL, and any MySQL-compatible service.
| Who uses it | What they scrape MySQL for |
|---|---|
| Data analysts | Pull raw tables into a spreadsheet or BI tool for reporting |
| Developers | Migrate data between environments or seed test databases |
| Data engineers | Schedule regular exports from production databases into a data lake |
| Business owners | Get a snapshot of customer or order data without writing SQL |
What it does
This Actor connects to a MySQL database and extracts rows from selected tables, returning each row as a flat JSON object.
- Flexible connection: Use a single connection string or fill in host, port, database, username, and password separately.
- Table selection: Extract all tables, a specific list, or exclude certain tables with simple array inputs.
- Row limits: Cap the number of rows per table to avoid huge exports or sample data quickly.
- SSL support: Enable SSL for secure connections to cloud databases like Amazon RDS or Google Cloud SQL.
Results export to CSV, JSON, Excel, or XML, or straight from the API.
What you can do with MySQL data
Export data for reporting.
A data analyst connects to the production MySQL database, selects the orders and customers tables, and exports the results to CSV for a weekly sales report.
Migrate between environments.
A developer extracts all tables from a staging database and loads them into a local MySQL instance to reproduce a bug.
Seed test data.
A QA engineer pulls a subset of rows from the users table to create realistic test fixtures for an application.
Archive historical data.
A data engineer schedules a monthly run that extracts rows older than a year from the logs table and stores them in cloud storage.
Why choose this scraper
| What you get | |
|---|---|
| Direct connection | Reads directly from your MySQL server, no intermediate API or export step |
| Structured output | Each row becomes a flat JSON object, ready for CSV, JSON, Excel, or XML export |
| Table control | Include or exclude specific tables and limit rows to keep datasets manageable |
| Cloud ready | SSL support works with Amazon RDS, Google Cloud SQL, and other managed MySQL services |
How it compares
No other Store actor targets MySQL the same way, so the honest comparison is with the alternatives teams actually weigh.
| MySQL Database Extractor | Build it in-house | By hand | |
|---|---|---|---|
| Setup | Run it now, zero config | Days of engineering | None, but hours per pull |
| When MySQL changes | Maintained for you | You fix it | You re-learn the page |
| Proxies, retries, anti-bot | Built in | Your problem | Browser only |
| Output | Fixed JSON schema, CSV/Excel export | Whatever you build | Copy-paste |
| Cost | Pay per result | Engineering time | Analyst hours |
Configure the run
Provide either a full connection string or individual credentials, then optionally list tables to include or exclude and set a maximum row count per table. The Input tab lists every parameter.
A first run with the defaults:
{"host": "51.222.13.168","port": 3307,"database": "myapp_db","username": "appuser","password": "apppass123","ssl": false,"tables": [],"excludeTables": [],"maxRowsPerTable": 100}
Pricing
Pay-per-result: $0.008 per result collected. You pay only for the results written to your dataset.
| Results collected | Approximate cost |
|---|---|
| 100 results | $0.80 |
| 1,000 results | $8.00 |
| 10,000 results | $80.00 |
New Apify accounts start with $5 in free credit.
Free users
Free-plan runs return up to 10 results as a preview. Upgrade your Apify plan to collect more results per run.
Run it
- Create a free Apify account with $5 in credit.
- Open the MySQL Database Extractor.
- Set your inputs and any filters, then click Start.
- Export the results as CSV, Excel, JSON, or XML from the Dataset tab.
Run it programmatically through the Apify API (run-sync-get-dataset-items) or the ApifyClient for JavaScript and Python.
Use with AI agents (MCP)
Give an AI agent live access to MySQL through the Model Context Protocol. Add the Actor to Claude, Cursor, or any MCP client:
$claude mcp add --transport http apify "https://mcp.apify.com?tools=parseforge/mysql-database-extractor"
Then prompt it in plain language to run the scraper and read back the results.
Troubleshooting
Why am I getting a connection timeout?
Your MySQL server may not be reachable from Apify's IP addresses. Check your firewall or security group and allow inbound connections on the MySQL port (default 3306). Also verify the host and port are correct.
Why does the run fail with 'Access denied'?
The username or password is incorrect, or the user does not have permission to access the specified database. Double-check the credentials and grant the necessary privileges.
Why are some tables missing from the output?
If you specified 'tables' or 'excludeTables', only the matching tables are extracted. Also ensure the user has SELECT permission on those tables. If no tables are listed, all tables should be included.
Why is the dataset empty even though the run succeeded?
The tables may be empty, or 'maxRowsPerTable' is set too low. Check the table contents directly in MySQL and adjust the row limit if needed.
Can I extract data from a specific schema?
The Actor connects to a single database as specified in the input. To extract from multiple schemas, run the Actor separately for each database name.
FAQ
| Question | Answer |
|---|---|
| Do I need to install anything on my MySQL server? | No. The Actor connects remotely using standard MySQL client libraries. You only need to allow network access from Apify's IP addresses and provide valid credentials. |
| Can I connect to a cloud database like Amazon RDS? | Yes. Enable SSL in the input and provide the host, port, database, username, and password. Make sure your cloud security group allows inbound connections from Apify. |
| How do I extract only certain tables? | Use the 'tables' input field to list the table names you want, or use 'excludeTables' to skip specific tables. If both are empty, all tables in the database are extracted. |
| What if my table has millions of rows? | Set 'maxRowsPerTable' to limit the number of rows extracted from each table. This helps keep the dataset size manageable and reduces run time. |
| Can I use a connection string instead of separate fields? | Yes. Provide a full connection string like mysql://user:password@host:port/database in the 'connectionString' field. Other connection parameters will be ignored. |
| What output formats are supported? | The Actor returns data as JSON objects. You can export the dataset to CSV, JSON, Excel, or XML directly from the Apify platform. |
| Is my database password stored securely? | Yes. Input fields are encrypted and stored securely by Apify. The password is only used during the run to establish the connection. |
| Does this work with MySQL-compatible databases like MariaDB? | It should work with any database that speaks the MySQL wire protocol, including MariaDB and Percona Server, as long as the connection parameters are valid. |
| Can I schedule regular extractions? | Yes. Use Apify's scheduler to run the Actor on a recurring basis, such as daily or weekly, and automatically export the results to your preferred storage. |
| What happens if the connection fails? | The run will fail with an error message indicating the problem, such as invalid credentials or network timeout. Check your inputs and firewall settings, then retry. |
Related actors
Browse the full ParseForge collection for more scrapers.
🆘 Need help? Email parseforge@protonmail.com with your run ID, your input, and what you expected.
⚠️ Disclaimer. This Actor is unofficial and is not affiliated with, endorsed by, or sponsored by Oracle Corporation. It collects only publicly available data. You are responsible for using the collected data in compliance with the source's terms of service and applicable data-protection laws, including GDPR, CCPA, and PIPL. Do not use it to collect personal data unlawfully.
