Skip to content

RizomaDB

MySQL / MariaDB ​

Level: 1 · Versions tested in CI: MySQL 8.4 and MariaDB 11 (tested)

Authentication and transport ​

user/password, TLS, SSH tunnel

Capabilities ​

Same as PostgreSQL; admin locks use MySQL 8 views (MariaDB locks view not implemented)

Type notes ​

BIGINT exact, DECIMAL as string, JSON as JSON, BIT/BLOB as bytes

Read-only enforcement ​

Session READ ONLY transaction mode on read-only connections

External tools ​

mysqldump, mysql (detected on PATH)

Driver license ​

mysql2 (MIT)

Table screen (filter, paging, column menu) ​

Verified against a real server in apps/extension/src/lib/engines.integration.test.mts: MySQL 8.4 (filter, paging, column rename/type/default/NOT NULL/add/drop).

Running the integration tests ​

docker compose -f test/compose/docker-compose.yml up -d <service> then RZ_ENGINES=mysql pnpm test (see test/compose/docker-compose.yml for ports and packages/test-engines for the helpers).

TiDB ​

The MySQL driver passes the full conformance kit (15/15) against TiDB v8.5.1 (single node, pingcap/tidb, unistore storage; RZ_TIDB_PORT, default 14000). TiDB only implements SET ... READ ONLY as a no-op, so for TiDB the driver does not trust it: read-only connections are enforced in the driver with a default-deny statement check (reads, SHOW, EXPLAIN, WITH ... SELECT; everything else, multi-statement input, FOR UPDATE and INTO OUTFILE rejected). That is a client-side guarantee; for a server-side one use a TiDB user with SELECT-only grants. Not tested: TiKV clusters, TiDB Cloud, TLS, placement rules, TiDB-specific DDL in the schema designer.