> ## Documentation Index
> Fetch the complete documentation index at: https://docs.datazone.co/llms.txt
> Use this file to discover all available pages before exploring further.

# MySQL

> MySQL is an open-source relational database management system (RDBMS).

# Overview

MySQL is one of the world's most popular open-source relational database management systems. Datazone provides seamless integration with MySQL databases, allowing you to easily ingest and manage your MySQL data.

## Connection Parameters

Set on the source when you create it. Names match the API and CLI payload.

<ParamField path="name" type="string" required>
  **Name** — a unique identifier for your MySQL source.
</ParamField>

<ParamField path="host" type="string" required>
  **Host** — hostname or IP address of your MySQL server.
</ParamField>

<ParamField path="port" type="string" required>
  **Port** — port the MySQL server listens on. Typically `3306`.
</ParamField>

<ParamField path="database_name" type="string" required>
  **Database Name** — the database to connect to.
</ParamField>

<ParamField path="schema_name" type="string">
  **Schema Name** — optional schema, if different from the database name. Left empty, extracts resolve tables within `database_name`.
</ParamField>

<ParamField path="user" type="string" required>
  **User** — username with read permission on the tables you intend to extract.
</ParamField>

<ParamField path="password" type="string" required>
  **Password** — password for the specified user. Stored encrypted.
</ParamField>

## Extract Parameters

Set per extract, in `source_parameters`. See [Shared Extract Parameters](/reference/sources/overview#shared-extract-parameters) for `mode`, `replication_key`, and `schema_mapping`.

<ParamField path="table_name" type="string" required>
  **Table Name** — the table or view to extract. Resolved within the source's `schema_name` when set, otherwise `database_name`.
</ParamField>

<ParamField path="batch_size" type="integer" default="1000000">
  Rows fetched and written per batch.
</ParamField>

<ParamField path="select_clause" type="string" default="*">
  Columns to read, as a comma-separated list.
</ParamField>

<ParamField path="filter_clause" type="string">
  Row filter pushed down to MySQL, written without the `WHERE` keyword — for example `created_at >= '2024-01-01'`.
</ParamField>

## Required Permissions

The MySQL user account needs the following permissions:

* `SELECT` - For reading data from tables
* `SHOW DATABASES` - For listing available databases
* `SHOW VIEW` - For accessing views
* `REFERENCES` - For foreign key constraints

## Limitations

Be aware of the following limitations when working with MySQL sources:

* Supported MySQL versions: 5.6 and above
* Some MySQL-specific data types might be converted to standard types
* Large table scans may impact source database performance
* Consider using read replicas for heavy data extraction

## Next Steps

After configuring your MySQL source:

1. Create extracts to specify which tables to ingest
2. Configure scheduling for recurring extracts
3. Integrate the source into your data pipelines

For more information about working with extracts and pipelines, refer to their respective documentation sections.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.