# myflames 3.1.1 (2026-10-22)

myflames 3.1.1 is available as a desktop app for macOS on Apple Silicon and as a Python package (Python 3.7 or later).

## Release highlights

- **Cluster** shows Galera, Percona XtraDB Cluster, InnoDB Cluster and Group Replication members, with reviewed member actions.
- **ProxySQL** connects to ProxySQL's Admin interface and shows backend servers, hostgroups, query rules and query digests, with reviewed changes.
- Percona Server for MySQL is supported, and myflames reads what Percona adds.
- **Check for updates** tells you when a newer myflames is available.

## New features

- Adds support for Percona Server for MySQL. Percona Server and Percona XtraDB Cluster are named by their product everywhere a server is named, and what Percona adds is read when the server reports it: user statistics for index and table activity, thread pool counters in Health, the slow log sampling rules, and a Percona tag on the parameters only Percona has.
- Adds **Check for updates** to Home's version footer and to About myflames. It asks GitHub only when clicked, then shows Up to date, the newer version with **Download…**, or why it could not check.
- Adds **Cluster**, a place of its own after Replication. For MariaDB Galera Cluster, Percona XtraDB Cluster, MySQL InnoDB Cluster and plain Group Replication it shows the members as the connected server sees them, with one severity scale for every kind, a topology picture, and an inspector per member and router.
- Adds reviewed changes in a cluster member's inspector: **Make primary…**, stopping and starting Group Replication, switching a Group Replication group between single- and multi-primary mode, and on MariaDB Galera **Desync this node…**, **Resync this node…** and **Bootstrap a Primary component…**. Destructive changes ask you to type the target's name.
- Adds **ProxySQL**, a place of its own for a connection to ProxySQL's Admin interface (2.x and 3.x). It lists each backend server with its hostgroup, status, weight, connections and errors, plus hostgroups, query rules and query digests, each with an inspector.
- Adds reviewed ProxySQL changes: set a server ONLINE, OFFLINE_SOFT or OFFLINE_HARD, change its weight, move it to another hostgroup, or enable and disable a query rule. **Save to disk…** and **Load to runtime…** are separate reviewed steps that list every difference between memory, runtime and disk first.
- Adds orders and filters to ProxySQL Query digests (slowest, most time, most frequent, highest rate or most rows sent, filtered by hostgroup, schema, user or text). Each digest shows **Ran on** and **Rules send to**, cross-checked against the active query rules, and a different hostgroup is flagged as a mismatch with its possible reasons.
- Adds an explanation of safe updates beside **Run options** in the Query editor: what `sql_safe_updates` refuses, when it is on for the tab's session and how to turn it off, with links to the MySQL and MariaDB documentation.
- Adds a menu to each Query editor tab (right-click or Shift+F10): **Rename…**, **Duplicate**, **Close** and **Close others**. Close others skips a tab with a running statement and asks before closing one whose transaction is open.
- Adds **Format SQL** to the Query editor (Shift+Option+F, or the indent button in the toolbar). It lays out the selection or the whole tab as one undo step and never runs SQL. If the result would change anything besides white space and keyword case, it is refused and the line is named.
- Adds MySQL and MariaDB news on Home: up to six headlines from Planet MySQL and the MariaDB Foundation, read over HTTPS only while Home is open and cached for six hours. Turn it off in Settings, and nothing is read.
- Links every parameter in Server > Parameters to its entry in the official MySQL, MariaDB or Percona manual for the server's version, from the inspector's **Documentation** or the row menu's **Open documentation**.
- **Maintenance > Dump** lists the tables of a chosen database, with engine, estimated rows and size, so a table dump sends exactly the ticked names.

## Improvements

- Every action in the workspace gives feedback: the button that starts an action shows what it is doing, a slow answer offers Stop, and the result stays on screen. Reviewed Cluster and ProxySQL changes show each step and each statement's state in the same sheet, then what changed and the Audit log record.
- Replication reads **Not a replica** for a server with no asynchronous replication channel, and offers **Open Cluster** for a group member or a Galera node. It also shows each source's engine and version, read from the replica's relay log or through a saved connection.
- Query digest and Database diagram have their own places in the sidebar's SQL workspace group.
- Top statements and Error log read their data when they open, once per connection, like every other view, so there is no Load button any more.
- Adds a context menu to Processlist rows with Show plan, Open in Query editor, filters, Copy query, and **Kill query…** and **Kill connection…**. The Mass kill button is renamed **Kill sessions…**.
- Server > Parameters' inspector is one compact section: a one-sentence description, the documentation link and the current value, with a recommendation only when a check flags the parameter.
- **Maintenance > Dump** is a two-column form, with the tool's options grouped as Performance, Contents, SQL output and Compression.
- Narrow windows work better: between 651 and 900 px a 48 px icon rail with tooltips replaces the sidebar, summary tiles fold into one compact strip, and Replication, Parameters and ProxySQL details open in a side inspector while their lists stay on screen.
- Production connections are purple and Development connections teal, so red only means Problem and green only OK.
- The Tuning grade explains itself where it is shown, with the scale (A 90 and above, down to F below 50) and why a problem caps the grade at C.
- The Full analysis's Galera check uses the Cluster place's rules, so a Primary component of one or two nodes is Watch and a MariaDB node with `wsrep_on` OFF is a Problem.
- Privileges moves from the top bar into the connection picker's menu as **Account and privileges…**, and About myflames names what the app contacts and when in one privacy line.

## Bug fixes

- Fixed an issue where host-and-port connections, including localhost, could use a Unix socket. They use TCP, and a Unix socket only when you choose one.
- Fixed an issue where a confirmation sheet whose request never answered could trap the window. After ten seconds Cancel becomes Close, and the outcome shows in the view when it arrives.
- Fixed an issue where the Query editor stopped with "Maximum update depth exceeded" when its text was replaced outside typing, for example by **Format SQL**.
- Fixed an issue where a reviewed SQL action or a table data Apply refused by the server was shown as an unknown outcome. It shows as failed, in the server's words.
- Fixed several Kill issues: an accepted Kill whose check afterwards fails reports "Sent; could not verify", Kill sessions no longer reports "Nothing was sent." after a successful bulk kill, a Kill's answer in Locks shows at once, and Kill requests for Group Replication's own connections are refused with the reason.
- Fixed an issue where partitioned-table indexes could be listed as unused. They are kept out of the Unused list on MySQL, MariaDB and Percona Server.
- Fixed an issue where `HANDLER OPEN` needed no write confirmation even though it holds a metadata lock until `HANDLER CLOSE` or the session ends. It needs confirmation now, and `HANDLER READ` and `HANDLER CLOSE` stay reads.
- Fixed an issue where a MariaDB server was not recognized as MariaDB when only its version comment said so, including a plain version string such as 11.4.13. The Query editor also detects a MariaDB session when the server's version string is customized.
- Fixed several ProxySQL digest issues: cached reads are read again after a reviewed change so routing reflects the current rules, digest hash filters accept lowercase and mixed-case hashes, and routing shows Not judged with the reason instead of a false match when a runtime variable cannot be read.
- Fixed an issue where the Error log view failed on MySQL before 8.0.22. The view says the log is not available there and how to read the file instead.
- Fixed an issue where Check for updates and other HTTPS reads failed certificate verification in the packaged macOS app on a Mac without Homebrew's OpenSSL. When OpenSSL finds no certificate authorities, myflames also trusts the roots macOS trusts, and update downloads have an overall deadline.
- Fixed several small layout issues: popovers no longer hide under the window footer, the Replication topology popover is no longer cut off, Database diagram relationship lines no longer appear joined at crossings, and refreshed table rows are remeasured so larger numbers fit their columns.

## Deprecations and removals

- Removes the optional 3D view of the B+tree lesson from Learn, with its 2D | 3D switch. The 2D lessons are unchanged.

## Additional resources

- Download the latest myflames from [myflames.io](https://myflames.io/download.html), or this version from [GitHub](https://github.com/vgrippa/myflames/releases/tag/v3.1.1)
- New to myflames? Start with the [Quickstart](https://myflames.io/docs.html?article=quickstart)
- Report a problem or ask for a feature on [GitHub Issues](https://github.com/vgrippa/myflames/issues)

Inspired by [Brendan Gregg's FlameGraph](https://github.com/brendangregg/FlameGraph) and [Tanel Poder's SQL Plan FlameGraphs](https://tanelpoder.com/posts/visualizing-sql-plan-execution-time-with-flamegraphs/).
