MySQL

Overview

The MySQL source supports both Full Refresh and Incremental syncs. You can choose if this connector will copy only the new or updated data, or all rows in the tables and columns you set up for replication, every time a sync is run.

Resulting schema

The MySQL source does not alter the schema present in your database. Depending on the destination connected to this source, however, the schema may be altered. See the destination's documentation for more details.

Data type mapping

MySQL data types are mapped to the following data types when synchronizing data:

MySQL Type

Resulting Type

Notes

array

array

binary

string

date

string

datetime

string

enum

string

numeric

string

includes integer, etc

string

string

If you do not see a type in this list, assume that it is coerced into a string. We are happy to take feedback on preferred mappings.

Note: arrays for all the above types as well as custom types are supported, although they may be de-nested depending on the destination. Byte arrays are currently unsupported.

Features

Feature

Supported

Full Refresh Sync

Yes

Incremental - Append Sync

Yes

Replicate Incremental Deletes

Coming soon

Logical Replication (WAL)

Coming soon

SSL Support

Yes

SSH Tunnel Connection

Coming soon

Getting started

Requirements

  1. MySQL Server 8.0, 5.7, or 5.6.

  2. Create a dedicated read-only Airbyte user with access to all tables needed for replication

Setup guide

1. Make sure your database is accessible from the machine running Airbyte

This is dependent on your networking setup. The easiest way to verify if Airbyte is able to connect to your MySQL instance is via the check connection tool in the UI.

This step is optional but highly recommended to allow for better permission control and auditing. Alternatively, you can use Airbyte with an existing user in your database.

To create a dedicated database user, run the following commands against your database:

CREATE USER 'airbyte'@'%' IDENTIFIED BY 'your_password_here';

Then give it access to the relevant schema:

GRANT SELECT ON <database name>.* TO 'airbyte'@'%';

You can limit this grant down to specific tables instead of the whole database. Note that to replicate data from multiple MySQL schemas, you can re-run the command above to grant access to all the relevant schemas, but you'll need to set up multiple sources connecting to the same db on multiple schemas.

Your database user should now be ready for use with Airbyte.