MySQL/MariaDB Driver v0.4.0

Driver Version v0.4.0 Release Date 2026-06-18 Tested With MySQL 9.4 Tested With MariaDB 12.2

This driver provides access to MySQL and MariaDB , free and open-source relational database management systems.

Installation

The MySQL driver can be installed with dbc :

dbc install mysql

Connecting

To connect, edit the uri option below to match your environment and run the following:

from adbc_driver_manager import dbapi

conn = dbapi.connect(
  driver="mysql",
  db_kwargs = {
    "uri": "mysql://root@localhost:3306/demo"
  }
)

Note: The example above is for Python using the adbc-driver-manager package but the process will be similar for other driver managers. See adbc-quickstarts .

Connection String Format

Connection strings are passed with the uri option. The driver supports two formats:

Go MySQL Driver DSN Format (Alternative)

The driver also accepts the Go MySQL Driver DSN format :

[username[:password]@][protocol[(address)]]/dbname[?param1=value1&...&paramN=valueN]

Examples:

  • user:pass@tcp(localhost:3306)/mydb

  • user@tcp(127.0.0.1:3306)/mydb

  • user:pass@unix(/tmp/mysql.sock)/mydb

Feature & Type Support

Feature MariaDB MySQL
Bulk Ingestion Create ❌ ✅
Append ❌ ✅
Create/Append ❌ ✅
Replace ❌ ✅
Temporary Table ❌ ✅
Target Catalog ❌
Target Schema ❌
Non-nullable fields are marked NOT NULL ❌
Catalog (GetObjects) depth=catalogs ❌ ✅
depth=db_schemas ❌ ✅
depth=tables ❌ ✅
depth=columns (all) ❌ ✅
Get Parameter Schema ❌
Get Table Schema ❌ ✅
Prepared Statements ✅
Transactions ❌

Types

Database to Arrow

Database Type MySQL MariaDB

BIGINT

int64

❌

BIGINT UNSIGNED

uint64

❌

BIT

binary

❌

BOOLEAN

int64, int8 ⚠️ [1]

❌ [1]

DATE

date32[day]

❌

DATETIME

timestamp[us]

❌

DOUBLE PRECISION

double

❌

INT

int32

❌

JSON

extension<arrow.json>

❌

NUMERIC

decimal64

❌

REAL

float

❌

SMALLINT

int16

❌

TIME

time64[us]

❌

TIMESTAMP

timestamp[us], timestamp[us] (with time zone) ⚠️ [1]

❌ [1]

VARBINARY

binary

❌

VARCHAR

string

❌

Arrow to Database

Arrow Type MySQL Type MariaDB Type
Bind Ingest Bind Ingest

binary

VARBINARY

❌

binary_view

VARBINARY

❌

bool

BOOLEAN

❌

date32[day]

DATE

❌

decimal128

DECIMAL

❌

double

DOUBLE PRECISION

❌

fixed_size_binary

VARBINARY

❌

float

REAL

❌

halffloat

REAL

(NA/not tested)

❌

(NA/not tested)

int16

SMALLINT

❌

int32

INT

❌

int64

BIGINT

❌

large_binary

VARBINARY

❌

large_string

VARCHAR

❌

string

VARCHAR

❌

string_view

VARCHAR

❌

time32[ms]

TIME

❌

time32[s]

TIME

❌

time64[ns]

TIME

❌

time64[us]

TIME

❌

timestamp[ms]

DATETIME

❌

timestamp[ms] (with time zone)

TIMESTAMP

❌

timestamp[ns]

DATETIME

❌

timestamp[ns] (with time zone)

TIMESTAMP

❌

timestamp[s]

DATETIME

❌

timestamp[s] (with time zone)

TIMESTAMP

❌

timestamp[us]

DATETIME

❌

timestamp[us] (with time zone)

TIMESTAMP

❌

uint16

SMALLINT UNSIGNED

❌

uint32

INT UNSIGNED

❌

uint64

BIGINT UNSIGNED

❌

uint8

TINYINT UNSIGNED

❌

Compatibility

This driver was tested on:

  • MySQL (unknown)

  • MySQL 9.4.0 (MySQL Community Server - GPL)

Previous Versions

To see documentation for previous versions of this driver, see the following: