MySQL / MariaDB
MySQL and MariaDB share most of their wire protocol; Quay treats them as a single dialect family with a per-connection flag for the few places they diverge (system tables, JSON_TABLE, sequence syntax). Free tier on both.
Connection
Section titled “Connection”| Field | Notes |
|---|---|
| Host | localhost, mysql.example.com, … |
| Port | 3306 (default) |
| User · Password | Standard MySQL creds |
| Database | Default schema for the session |
| SSL mode | disable / preferred / required / verify-ca |
| SSH tunnel | Optional |
If you paste a mysql://user:pass@host:3306/db URL into Quick
connect, Quay parses it out.
Wire-compat presets
Section titled “Wire-compat presets”- TiDB — MySQL-compatible, distributed, with
INFORMATION_SCHEMAextensions - PlanetScale — Vitess-based; the schema browser hides shadow-database internals
- Aurora MySQL — MySQL + IAM auth
- Vitess — sharded MySQL; the connection picks the keyspace as “database”
Native tools
Section titled “Native tools”- FK-aware backup —
mysql_export.rswalksKEY_COLUMN_USAGE+REFERENTIAL_CONSTRAINTSfor FK ordering. Snapshot viaSTART TRANSACTION WITH CONSISTENT SNAPSHOT(InnoDB only — MyISAM tables get a row-count warning). - Triggers, views, procedures, functions, events — all preserved
with proper
DELIMITER //so the dump parses on restore. - AUTO_INCREMENT — preserved per-table at dump time.
- Charset / collation — emitted at every level (database, table, column, default).
- Engine + ROW_FORMAT — preserved (InnoDB / MyISAM / Aria; COMPRESSED / DYNAMIC).
- Partitions — RANGE / LIST / HASH definitions emit verbatim.
Streaming import
Section titled “Streaming import”mysql_import.rs handles dumps from mysqldump, phpMyAdmin,
Adminer, Navicat, DBeaver, and Quay itself. Multi-statement triggers
- stored procs work without manual delimiter munging.
For big imports (>1 GB), the streaming parser keeps memory flat — no full-file slurp. Live progress shows bytes parsed + statements executed + skipped (with stop-on-error / collect-errors modes available in the import dialog).
Deep features (Pro tier)
Section titled “Deep features (Pro tier)”- Stored-proc trace — right-click procedure → Trace. Wraps the
CALL in
SET profiling = 1; CALL …; SHOW PROFILE FOR QUERY 1; SET profiling = 0;to surface per-step timing through the messages channel. - Schema diff — full table-by-table walk; per-column type / NULL / default / collation / engine / partition diff.
MariaDB-only differences
Section titled “MariaDB-only differences”- Sequences (CREATE SEQUENCE) — MariaDB-specific; Quay’s dump emits them in CREATE-DATABASE → SEQUENCES → tables order
- System catalog — MariaDB exposes
SHOW SLAVE STATUSdifferently; Quay’s “replication” panel auto-detects - JSON — both engines have
JSON_VALUEetc., but column types differ slightly; Quay normalises in the schema browser
Why one dialect, not two
Section titled “Why one dialect, not two”Splitting MySQL and MariaDB into separate dialects would double the number of dropdown choices without doubling the value. Most users target one or the other, and the differences are catalog-shaped, not wire-protocol-shaped — the same Quay session can talk to either, the per-connection flag tunes the catalog queries.
SSL caveat
Section titled “SSL caveat”MariaDB ≥ 11 with --require-secure-transport rejects connections
without TLS. The Quay error message in that case is the engine’s
exact text, not a Quay wrapper, so the fix (“turn on SSL mode”) is
obvious from the error.