---
title: "A Native MariaDB Client for Mac, With Undo for AI Changes"
description: "Browse, edit and query MariaDB in a native Mac app, and let Claude Code, Codex or Cursor work on it with every change they make saved first, so one bad change can be undone."
canonical_url: "https://tablestudio.sh/databases/mariadb"
---

> Index of every page on this site: [llms.txt](https://tablestudio.sh/llms.txt)

TableStudio is a native Mac client for MariaDB that knows where MariaDB isn't MySQL. It lets coding agents like Claude Code, Codex and Cursor work on your databases with a way back from every change they make.

<lead-feature icon="i-ph-arrow-counter-clockwise" title="Undo the change your agent got wrong">

Most agent mistakes are small: an `UPDATE` whose `WHERE` matched more than intended, or a cleanup `DELETE` that took rows someone needed. A backup rewinds the whole database. TableStudio undoes just that one change.

Before an agent's change runs, TableStudio saves the rows it's about to touch, including rows a foreign-key cascade would change. Undo dry-runs first and puts those rows back. Any row someone changed since is skipped and listed, never overwritten. Every change, and every undo, shows up in the **Agent Center**.

</lead-feature>

<feature-cards description="MySQL's tooling, with MariaDB's differences handled." title="What TableStudio does for MariaDB">
<feature-card icon="i-ph-shield-check" title="A safe way in for agents">

- Agents reach MariaDB by name through the free plugin or MCP server, never with a password from your `.env`.
- Reads run in a read-only session with a 30-second limit; `INTO OUTFILE` is refused.
- Production changes are staged as a migration and applied with Touch ID.
- Each write can be dry-run against the real rows first.
- The plugin stops `mysql` and migration tools like Prisma and Rails from writing to production from the terminal.
- Text an agent reads out of a table comes back labelled as untrusted data, so a planted instruction stays data.

</feature-card>

<feature-card icon="i-ph-gauge" title="Where the time goes">

- Query Insights from `performance_schema`, once it's on, with what's wrong with each statement.
- Test dropping an index by marking it ignored, then bring it back if anything slows down.
- Find duplicate, redundant and never-used indexes, with the SQL to drop them.

</feature-card>

<feature-card icon="i-ph-heartbeat" title="Health and settings">

- A warning when `performance_schema` is off, which is MariaDB's default.
- The query cache left on, which MariaDB still supports and rarely helps.
- Binary logs that aren't synced, purged or row-based, and replicas that accept writes or skip errors.
- Deadlocks per hour, temporary tables on disk, and auto-increment columns running out of values.

</feature-card>

<feature-card icon="i-ph-tree-structure" title="Schema">

- MariaDB's `uuid`, `inet4` and `inet6` types in the column editor.
- Tables still on MyISAM or Aria, with the move to InnoDB ready to review.
- Legacy character sets, mismatched collations, money in `FLOAT`, and `TIMESTAMP` columns that stop in 2038.
- ER diagrams, schema compare with the migration script, and comments written with AI.

</feature-card>

<feature-card icon="i-ph-table" title="Data">

- `ENUM` and `SET` dropdowns, a peek at the parent row behind any foreign key, and edits committed together.
- Load a CSV or TSV straight into a table, and hand results to a teammate as Excel.
- Fake rows that follow your foreign keys, for testing a feature against realistic data.

</feature-card>

<feature-card icon="i-ph-clock-counter-clockwise" title="Backups">

- `mariadb-dump` backups to your Mac or an S3 bucket, falling back to `mysqldump`.
- Restore points before a risky change.
- Sandboxes on your local MariaDB server, with real rows or none.
- Move to another host, or into Postgres, with a pre-flight report.

</feature-card>

<feature-card icon="i-ph-plugs-connected" title="Connect">

- Amazon RDS, DigitalOcean, Aiven and Azure, directly, over SSH or with SSL.
- Paste a connection URL into Host, or import the database from your project's `.env`.
- Open a terminal session on the server without typing its password.

</feature-card>
</feature-cards>

## MariaDB isn't MySQL

The two started as one, but they've drifted: different dump tools, ignored indexes instead of invisible ones, extra column types, a query cache MySQL dropped, and `performance_schema` off by default. TableStudio reads which one it's connected to and uses the right syntax and tools for each. You don't have to remember which flavor a server is.

## Sitemap

See the full [sitemap](https://tablestudio.sh/sitemap.md) for all pages.
