MariaDB and MySQL source

tap-mysql extracts relational tables with full-table, key-based incremental, or binlog-based replication. MariaDB and MySQL share the connector but have different support status.

Support

Source

Status

Native transfer

MariaDB

Available

FullSync to PostgreSQL or Snowflake; PartialSync to Snowflake

MySQL

Experimental

FullSync to PostgreSQL or Snowflake; PartialSync to Snowflake

Prerequisites

The runtime user needs SELECT on every replicated table and access to INFORMATION_SCHEMA. LOG_BASED replication additionally requires REPLICATION CLIENT and REPLICATION SLAVE.

Configure the source before selecting LOG_BASED:

[mysqld]
log_bin=mysql-binlog
binlog_format=ROW
binlog_row_image=FULL

Retain binlogs longer than the maximum expected outage. If PipelineWise’s saved position is purged, the affected tables require a resync.

Configuration

id: "orders"
name: "Orders MariaDB"
type: "tap-mysql"
owner: "data-platform@example.com"
db_conn:
  host: "<HOST>"
  port: 3306
  user: "<USER>"
  password: "{{ env_var['MARIADB_PASSWORD'] }}"
  dbname: "orders"
  engine: "mariadb"
  use_gtid: true
target: "snowflake"
batch_size_rows: 20000
stream_buffer_size: 0
schemas:
  - source_schema: "orders"
    target_schema: "repl_orders"
    tables:
      - table_name: "payments"
        replication_method: "LOG_BASED"
Connector-specific settings

Setting

Required

Default

Effect

engine

With GTID

Selects mariadb or mysql GTID semantics.

use_gtid

No

false

Stores a GTID bookmark instead of a filename and position.

replica_host

No

Primary host

Offloads FastSync reads; LOG_BASED continues from the primary.

filter_dbs

No

All visible schemas

Limits discovery to a comma-separated schema list.

export_batch_rows

No

50000

Controls rows written per FastSync export batch.

session_sqls

No

Connector defaults

Sets session variables after connecting.

fastsync_parallelism

No

CPU count

Controls concurrent FastSync table exports.

Common tap settings are documented in YAML configuration. Generate the full template with pipelinewise init.

Operational notes

  • binlog_row_image must remain FULL; sparse row images can omit values required to reconstruct a target row.

  • The connector interprets TINYINT as Boolean. Values outside 0 and 1 can fail when the target column is Boolean.

  • After an initial FastSync, the next normal run continues from the captured binlog or GTID position.

  • Use Troubleshooting for missing-binlog and packet-size failures.