[{"data":1,"prerenderedAt":266},["ShallowReactive",2],{"\u002Fdatabases\u002Fmariadb":3},{"id":4,"title":5,"body":6,"description":241,"extension":242,"faq":243,"headline":256,"lastUpdated":257,"meta":258,"navigation":259,"path":260,"seo":261,"stem":264,"__hash__":265},"databases\u002F4.databases\u002F3.mariadb.md","A Native MariaDB Client for Mac, With Undo for AI Changes",{"type":7,"value":8,"toc":236},"minimark",[9,13,42,225,230],[10,11,12],"p",{},"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.",[14,15,18,34],"lead-feature",{"icon":16,"title":17},"i-ph-arrow-counter-clockwise","Undo the change your agent got wrong",[10,19,20,21,25,26,29,30,33],{},"Most agent mistakes are small: an ",[22,23,24],"code",{},"UPDATE"," whose ",[22,27,28],{},"WHERE"," matched more than intended, or a cleanup ",[22,31,32],{},"DELETE"," that took rows someone needed. A backup rewinds the whole database. TableStudio undoes just that one change.",[10,35,36,37,41],{},"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 ",[38,39,40],"strong",{},"Agent Center",".",[43,44,47,85,104,125,163,184,208],"feature-cards",{"description":45,"title":46},"MySQL's tooling, with MariaDB's differences handled.","What TableStudio does for MariaDB",[48,49,52],"feature-card",{"icon":50,"title":51},"i-ph-shield-check","A safe way in for agents",[53,54,55,62,69,72,75,82],"ul",{},[56,57,58,59,41],"li",{},"Agents reach MariaDB by name through the free plugin or MCP server, never with a password from your ",[22,60,61],{},".env",[56,63,64,65,68],{},"Reads run in a read-only session with a 30-second limit; ",[22,66,67],{},"INTO OUTFILE"," is refused.",[56,70,71],{},"Production changes are staged as a migration and applied with Touch ID.",[56,73,74],{},"Each write can be dry-run against the real rows first.",[56,76,77,78,81],{},"The plugin stops ",[22,79,80],{},"mysql"," and migration tools like Prisma and Rails from writing to production from the terminal.",[56,83,84],{},"Text an agent reads out of a table comes back labelled as untrusted data, so a planted instruction stays data.",[48,86,89],{"icon":87,"title":88},"i-ph-gauge","Where the time goes",[53,90,91,98,101],{},[56,92,93,94,97],{},"Query Insights from ",[22,95,96],{},"performance_schema",", once it's on, with what's wrong with each statement.",[56,99,100],{},"Test dropping an index by marking it ignored, then bring it back if anything slows down.",[56,102,103],{},"Find duplicate, redundant and never-used indexes, with the SQL to drop them.",[48,105,108],{"icon":106,"title":107},"i-ph-heartbeat","Health and settings",[53,109,110,116,119,122],{},[56,111,112,113,115],{},"A warning when ",[22,114,96],{}," is off, which is MariaDB's default.",[56,117,118],{},"The query cache left on, which MariaDB still supports and rarely helps.",[56,120,121],{},"Binary logs that aren't synced, purged or row-based, and replicas that accept writes or skip errors.",[56,123,124],{},"Deadlocks per hour, temporary tables on disk, and auto-increment columns running out of values.",[48,126,129],{"icon":127,"title":128},"i-ph-tree-structure","Schema",[53,130,131,146,149,160],{},[56,132,133,134,137,138,141,142,145],{},"MariaDB's ",[22,135,136],{},"uuid",", ",[22,139,140],{},"inet4"," and ",[22,143,144],{},"inet6"," types in the column editor.",[56,147,148],{},"Tables still on MyISAM or Aria, with the move to InnoDB ready to review.",[56,150,151,152,155,156,159],{},"Legacy character sets, mismatched collations, money in ",[22,153,154],{},"FLOAT",", and ",[22,157,158],{},"TIMESTAMP"," columns that stop in 2038.",[56,161,162],{},"ER diagrams, schema compare with the migration script, and comments written with AI.",[48,164,167],{"icon":165,"title":166},"i-ph-table","Data",[53,168,169,178,181],{},[56,170,171,141,174,177],{},[22,172,173],{},"ENUM",[22,175,176],{},"SET"," dropdowns, a peek at the parent row behind any foreign key, and edits committed together.",[56,179,180],{},"Load a CSV or TSV straight into a table, and hand results to a teammate as Excel.",[56,182,183],{},"Fake rows that follow your foreign keys, for testing a feature against realistic data.",[48,185,188],{"icon":186,"title":187},"i-ph-clock-counter-clockwise","Backups",[53,189,190,199,202,205],{},[56,191,192,195,196,41],{},[22,193,194],{},"mariadb-dump"," backups to your Mac or an S3 bucket, falling back to ",[22,197,198],{},"mysqldump",[56,200,201],{},"Restore points before a risky change.",[56,203,204],{},"Sandboxes on your local MariaDB server, with real rows or none.",[56,206,207],{},"Move to another host, or into Postgres, with a pre-flight report.",[48,209,212],{"icon":210,"title":211},"i-ph-plugs-connected","Connect",[53,213,214,217,222],{},[56,215,216],{},"Amazon RDS, DigitalOcean, Aiven and Azure, directly, over SSH or with SSL.",[56,218,219,220,41],{},"Paste a connection URL into Host, or import the database from your project's ",[22,221,61],{},[56,223,224],{},"Open a terminal session on the server without typing its password.",[226,227,229],"h2",{"id":228},"mariadb-isnt-mysql","MariaDB isn't MySQL",[10,231,232,233,235],{},"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 ",[22,234,96],{}," 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.",{"title":237,"searchDepth":238,"depth":238,"links":239},"",2,[240],{"id":228,"depth":238,"text":229},"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.","md",[244,247,250,253],{"label":245,"content":246},"Does TableStudio treat MariaDB as its own engine?","Yes. MariaDB connects like MySQL, but TableStudio knows where they differ. It uses mariadb-dump for backups, MariaDB's ignored indexes for index testing, and MariaDB's own uuid, inet4 and inet6 types in the column editor. MariaDB's sequences and system-versioned tables aren't shown yet.",{"label":248,"content":249},"How does undo for AI changes work?","Before an agent's UPDATE or DELETE runs, TableStudio saves the rows it's about to touch, including rows a foreign-key cascade would change. Undo dry-runs first, then puts those rows back. Any row someone changed since is skipped and listed, never overwritten.",{"label":251,"content":252},"Why is Query Insights empty on my MariaDB server?","MariaDB ships with performance_schema off, and Query Insights reads it. TableStudio's health check flags it. Turn it on in the server's configuration and restart, and the statements start to show up.",{"label":254,"content":255},"Can TableStudio run MariaDB on my Mac?","It doesn't create MariaDB servers itself, but it connects to one you've installed, for example with Homebrew. Sandboxes of a MariaDB database run on that local server.","MariaDB","2026-10-29",{},true,"\u002Fdatabases\u002Fmariadb",{"title":262,"description":263},"MariaDB Client for Mac with a Safe MCP Server and Undo","TableStudio is a native Mac MariaDB client (GUI). Undo for AI changes, ignored-index testing, mariadb-dump backups, and a safe MCP server for Claude Code, Codex and Cursor.","4.databases\u002F3.mariadb","a5Mw1ET7GRJwsNkW8IvmUAu95mEImTra_vjGTZDXzRM",1793299920587]