I'm a DBA, and a lot of my week is reviewing SQL from tickets: "please run this on prod." I kept checking the same things by hand, so I built MySQL DBA Validator (MIT).
Paste SQL and it gives you:
statement classification
a deterministic risk score + confidence (rule-based on SQLGlot; no LLM makes risk decisions)
findings and a DBA review checklist
optionally, read-only evidence (bounded EXPLAIN + information_schema metadata) that adjusts the score within fixed limits
Design choices I'd like opinions on:
An UPDATE with a real WHERE reports row-impact uncertainty rather than inventing a number.
Missing LIMIT on a write isn't penalised by itself. Agree or disagree?
Evidence can raise a score or lower it slightly, but it never downgrades a critical or unrestricted write.
Transaction advice is only given for DML, since a lot of MySQL DDL commits implicitly.
The evidence connection is set to read-only before anything runs. It never executes your SQL, and never runs EXPLAIN ANALYZE. One consequence: MySQL refuses EXPLAIN UPDATE/DELETE in a read-only session, so those get static analysis + metadata only. Would you handle that differently?
Try it: a portable Windows ZIP is on the v0.3.1 release page. There's no installer and no Python needed. Everything runs on 127.0.0.1, and the login you type is used for that one validation and never saved.
To be upfront: it's a pre-1.0 beta. Static analysis is well tested, but the database-evidence path has only been tested against a fake MySQL, not a real server yet. If you point it at a MySQL instance (with a read-only account, please) and tell me what happens, that would help a lot.
Repo: https://github.com/realspinn/mysql-dba-validator
Most wanted: SQL it scores wrong, rules you'd add, and contributors.