Skip to content

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.

FieldNotes
Hostlocalhost, mysql.example.com, …
Port3306 (default)
User · PasswordStandard MySQL creds
DatabaseDefault schema for the session
SSL modedisable / preferred / required / verify-ca
SSH tunnelOptional

If you paste a mysql://user:pass@host:3306/db URL into Quick connect, Quay parses it out.

  • TiDB — MySQL-compatible, distributed, with INFORMATION_SCHEMA extensions
  • 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”
  • FK-aware backupmysql_export.rs walks KEY_COLUMN_USAGE + REFERENTIAL_CONSTRAINTS for FK ordering. Snapshot via START 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.

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).

  • 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.
  • Sequences (CREATE SEQUENCE) — MariaDB-specific; Quay’s dump emits them in CREATE-DATABASE → SEQUENCES → tables order
  • System catalog — MariaDB exposes SHOW SLAVE STATUS differently; Quay’s “replication” panel auto-detects
  • JSON — both engines have JSON_VALUE etc., but column types differ slightly; Quay normalises in the schema browser

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.

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.