RowDeck: MySQL® Monitor für das iPhone

Sehen, was in Ihrem MySQL brennt. Den Brand löschen.

Nachts alarmiert, und der Laptop liegt zu Hause? RowDeck öffnet auf „Zustand“, findet die Transaktion, die die Sperre hält, und zählt die Sitzungen, die dahinter festhängen. Beenden Sie den richtigen Thread vom iPhone aus, die eigentliche Korrektur folgt am Schreibtisch.

Free Pro 14,99 $ einmalig MySQL 8.0+ und MariaDB 10.5+ iOS 17+ iPhone

Einen Vorfall in vier Bildschirmen ansehen
Funktioniert mit MySQL 8.0 und neuerMariaDB 10.5 und neuerPercona Server for MySQLAmazon RDSAurora MySQLIhre eigenen Server
Der Ablauf um 3 Uhr nachts

Vom Alarm bis zur gelösten Blockade in vier Bildschirmen.

Die eingebaute Demo spielt einen typischen MySQL-Vorfall nach. Eine vergessene Transaktion hält eine Zeilensperre auf shop.orders, dahinter wartet eine Migration, und acht Sitzungen stauen sich. Wählen Sie einen Schritt, um seinen Bildschirm zu sehen.

Ohne Server ausprobieren: Tippen Sie auf dem Bildschirm „Verbindungen“ auf Demodaten ansehen. Sie brauchen kein Konto, und Pro-Aktionen laufen auf den Beispieldaten.

Bildschirm „Zustand“ von prod-shop im Status „Kritisch“: „Blockiert“ zeigt 8 wartend, Verbindungen 112 von 151, die längste Abfrage bei 09:12
Zustand · Kritisch · 8 wartend
  • Zeilensperren

    Wartende InnoDB-Sperren, gruppiert unter dem Thread, der sie hält, mit dem SQL, das jeder Wartende ausführt, und seiner Wartezeit.

  • Metadata locks

    Die Warteschlange um ALTER TABLE: wer auf einen Metadata lock der Tabelle wartet, welche Transaktion ihn hält, und eine Schaltfläche, um stattdessen das wartende ALTER abzubrechen.

  • Deadlocks

    Der letzte Deadlock aus InnoDB: wer auf was gewartet hat und welche Transaktion InnoDB zurückgerollt hat.

  • Beenden auf Amazon RDS

    Keine KILL-Rechte auf Amazon RDS oder Aurora? RowDeck ruft mysql.rds_kill auf und nennt den Weg in der Bestätigung.

Purge & Aufblähen

Sehen, wann AUTO_INCREMENT voll läuft, bevor INSERTs fehlschlagen.

„Purge & Aufblähen“ zeigt, wie viel von jedem Auto-increment-Bereich verbraucht ist, wie weit purge im Rückstand ist und welche Tabellen und Indizes Platz für nichts belegen.

  • Spielraum pro Spalte. Bei 93 % des INT-Bereichs von order_items.id warnt RowDeck, dass am Ende jedes INSERT fehlschlägt, und kopiert das ALTER, das die Spalte verbreitert.
  • History list length, mit der ältesten Transaktion, die InnoDB daran hindert, alte Zeilenversionen per purge zu entfernen.
  • Fragmentierte Tabellen sowie unbenutzte oder doppelte Indizes mit dem Platz, den jeder davon belegt.
  • Starten Sie ANALYZE TABLE aus der Liste, oder OPTIMIZE TABLE, nachdem Sie den Tabellennamen eingetippt haben. Anweisungen mit DROP INDEX und ALTER landen in Ihrer Zwischenablage, und Sie entscheiden, wann sie laufen. PRO
Bildschirm „Purge & Aufblähen“: order_items.id bei 93 % seines INT-Bereichs mit der Warnung, dass am Ende jedes INSERT fehlschlägt, eine Purge-Verzögerung von 1.2M und die älteste Transaktion
In der App

Jeder Bildschirm, den Sie bei einem MySQL-Vorfall öffnen.

Vorn „Zustand“ und hinter jeder Kachel ein nativer Bildschirm, damit Sie sich den mysql-Prompt auf der Handytastatur sparen. Die SQL-Konsole deckt den Rest ab und prüft jede Anweisung, bevor sie läuft.

  • Zustand

    Ein Gesamturteil und zehn Kacheln mit Schwellenwerten: Verbindungen im Verhältnis zu max_connections, blockierte Threads, die längste Abfrage, Abfragen pro Sekunde, Treffer im Buffer pool, Purge-Verzögerung, Auto-increment-Spielraum, Deadlocks, Replikation und Datenträger. Aktualisiert sich alle 10 Sekunden, solange Sie hinsehen, dunkel oder hell wie iOS.

    Bildschirm „Zustand“ im hellen Erscheinungsbild der App: „Kritisch“, 8 wartend, Verbindungen 112 von 151
  • Aktivität

    Jeder Thread aus der processlist, wartende zuerst. Filtern nach laufend, in Transaktion, über 10 s oder wartend, oder die Threads nach Client gruppieren.

  • Replikation

    Auf dem Replikat: IO- und SQL-Threads, Verzögerung und der Fehler, der einen Kanal angehalten hat. Auf der Quelle: verbundene Replikate und der Platz, den binlogs belegen.

  • Langsame Abfragen

    Statement-Digests aus performance_schema, sortiert nach Gesamtzeit, mittlerer Zeit, Aufrufen oder geprüften Zeilen.

  • Speicher

    Die größten Schemas, Tabellen und Indizes, aufgeteilt in Daten, Index und freien Platz.

  • Daten

    Tabellen durchsuchen, auf dem Server filtern, Fremdschlüsseln folgen, eine Seite als CSV exportieren oder als JSON kopieren. Zeilen bearbeiten Sie mit Pro.

  • SQL-Konsole

    Der Klassifikator stuft jede Anweisung schon beim Tippen ein: Lesen, Schreiben, DDL oder Destruktiv. Free führt Lesezugriffe aus, Pro auch den Rest.

  • PRO

    AI-Assistent mit Ihrem eigenen Modell

    Erklärt einen Vorfall oder eine Sperrkette und entwirft die Lösung. Er liest einen bereinigten Snapshot, zeigt Ihnen, was er senden wird, und führt selbst nichts aus. In der Demo kostenlos.

    • Anthropic
    • OpenAI
    • OpenRouter
    • Z.ai
    • OpenAI-kompatibler Server
    • Ollama in Ihrem Netzwerk
Bevor etwas geschrieben wird

Vier Prüfungen stehen zwischen Ihrem Daumen und dem Server.

RowDeck geht sie der Reihe nach durch. Ein Nein bei einem davon stoppt die Aktion, und nichts erreicht MySQL.

  1. Pro

    Free schreibt nie auf Ihren Server.

  2. Read-only-Verbindung

    Markieren Sie eine Verbindung als Read-only, und Schreibzugriffe sind dort gesperrt, auch mit Pro, bis Sie das Schreiben für die Sitzung erlauben.

  3. Klassifikator

    Er läuft bei jeder Anweisung, in Free wie in Pro.

  4. Ihre Bestätigung

    Eine Vorschau mit Ziel, Schema, Verbindung und PROD-Badge. Destruktive Schritte und das Beenden von Threads auf einer Production-Verbindung warten, bis Sie das Ziel eintippen.

Was der Klassifikator sah prod-shop PROD
SELECT * FROM orders WHERE id = 4820118; Lesen
UPDATE orders SET status = 'shipped' WHERE id = 4820118; Schreiben
CREATE INDEX idx_orders_total ON orders (total); DDL
TRUNCATE TABLE shop.sessions; Destruktiv
  • Über Ihren Bastion-Host

    SSH mit Passwort, Einmalcode oder Schlüssel: Ed25519, ECDSA oder RSA im Format OpenSSH, PEM, PKCS#8 oder PuTTY, oder ein Schlüssel für Secure Enclave. Bis zu zwei Jump-Hosts hinter dem Bastion-Host.

  • Gepinntes TLS

    RowDeck zeigt bei der ersten Verbindung den SHA-256-Fingerabdruck des Serverzertifikats und stoppt, wenn er sich später ändert.

  • Keychain und Face ID

    Passwörter, Schlüssel und Fingerabdrücke liegen im iOS Keychain auf diesem iPhone. Face ID öffnet die App.

  • Ehrlich ohne PROCESS

    Ohne dieses Recht zeigt MySQL Ihnen nur Ihre eigenen Threads. RowDeck sagt das offen und gibt Ihnen die Lösung:

    GRANT PROCESS ON *.* TO 'oncall'@'%';
Bildschirme

RowDeck 1.0 mit den eingebauten Demodaten.

Bildschirm „Zustand“: „Kritisch“, 8 wartend, zehn Kacheln

Zustand Der Vorfall, bevor Sie einen Laptop aufklappen.

Baum in „Sperren“ mit zwei Wurzel-Blockern und einem ALTER TABLE, das auf einen Metadata lock wartet

Sperren Zeilensperren und Metadata locks in einem Baum.

Dialog „Die blockierende Verbindung beenden“ mit der zur Bestätigung eingetippten Thread-ID

Verbindung beenden Sehen, was entblockt wird, bevor Sie bestätigen.

Bildschirm „Aktivität“ mit den Filtern „Läuft“, „In Trans.“, „> 10 s“, „Wartend“ und „Alle“

Aktivität Wartende Threads zuerst.

„Purge & Aufblähen“: sechs unbenutzte Indizes mit 34 GB, dazu „Anweisung DROP INDEX kopieren“

Indizes Unbenutzte und doppelte Indizes, DROP INDEX für Sie kopiert.

„Replikation“ auf einem Replikat: IO- und SQL-Thread laufen, 4,2 s hinter der Quelle

Replikation Kanalstatus und noch anzuwendende Transaktionen.

„Langsame Abfragen“ nach Gesamtzeit sortiert, mit Aufrufen, mittlerer Zeit und geprüften Zeilen

Langsame Abfragen Nach Gesamtzeit sortiert.

Bildschirm „Speicher“: 412 GB Daten und Indizes, die Schemas und die größten Tabellen

Speicher Die größten Tabellen und Indizes.

Tab „Daten“ von shop.orders mit einem Filter auf offene Bestellungen

Daten Auf der Seite oder auf dem Server filtern.

SQL-Konsole mit einer Leseabfrage auf performance_schema und ihrem Ergebnis

SQL-Konsole Jede Anweisung eingestuft.

SQL-Konsole mit CREATE INDEX, eingestuft als DDL, die jede offene Transaktion committet

DDL Was der Klassifikator sah, bevor sie läuft.

Antwort des Assistenten zu einer vergessenen Transaktion, die eine Zeilensperre hält, mit den vorgeschlagenen Threads zum Beenden

Assistent Ihr Modell, jede Aktion Ihre Entscheidung.

Formular für eine neue Verbindung mit SSH-Tunnel über einen Bastion-Host und Schlüsselimport

SSH-Tunnel Mit Ihrem Schlüssel und Jump-Hosts.

Zustand Der Vorfall, bevor Sie einen Laptop aufklappen.

Preise

Monitoring ist kostenlos. Pro ist ein einziger Kauf.

Richten Sie RowDeck auf Ihren Produktionsserver und nutzen Sie jeden Monitoring-Bildschirm kostenlos. Zahlen Sie 14,99 $ einmal, in der Nacht, in der Sie handeln müssen.

Free

für immer

0 $

Alles sehen, auf einem Server.

  • Eine gespeicherte Verbindung. Die Demo und ein Replikat, das Sie von seiner Quelle aus öffnen, zählen nicht.
  • Zustand, Aktivität, Sperren, Purge & Aufblähen, Replikation, Speicher und Langsame Abfragen
  • TLS mit gepinntem Fingerabdruck, SSH-Tunnel und Face ID
  • Datenbrowser mit serverseitigen Filtern, Fremdschlüsseln, CSV-Export und JSON-Kopie
  • Nur lesendes SQL mit dem Klassifikator

Pro

Einmalkauf

14,99 $

Auf jedem Server handeln.

  • Unbegrenzt viele gespeicherte Verbindungen
  • Abfragen und Verbindungen beenden, eine blockierte Kette freigeben
  • ANALYZE TABLE und OPTIMIZE TABLE ausführen
  • Schreiben, DDL und Zeilenbearbeitung, abgesichert durch Bestätigungen
  • Der AI-Assistent mit Ihrem eigenen Schlüssel oder Ihrem eigenen Ollama

Kein Abo und kein Konto. In der Demo probieren Sie jede Pro-Aktion vor dem Kauf an Beispieldaten aus. „Käufe wiederherstellen“ finden Sie auf dem Pro-Bildschirm und in den Einstellungen. Außerhalb der USA zeigt der App Store den Preis in Ihrer Währung.

Free Pro 14,99 $ einmalig MySQL 8.0+ und MariaDB 10.5+ iOS 17+ iPhone

FAQ

Fragen zu RowDeck und MySQL

Etwas fehlt? Schreiben Sie an support@rowdeck.app.

Funktioniert es mit Amazon RDS, Aurora oder meinen eigenen Servern?

RowDeck funktioniert mit MySQL 8.0 oder neuer und MariaDB 10.5 oder neuer, sofern Ihr iPhone den Server erreicht, selbst betrieben oder gemanagt, einschließlich Amazon RDS und Aurora MySQL. Percona Server for MySQL funktioniert ebenfalls.

Auf Amazon RDS und Aurora, wo ein Admin Threads anderer Benutzer nicht per KILL beenden kann, ruft RowDeck die Prozedur des Anbieters auf, mysql.rds_kill. Hinter einem Proxy sendet es kein KILL, weil die Thread-ID zu einem anderen Server gehören kann, und gibt Ihnen die Anweisung, die Sie auf dem Server selbst ausführen.

MySQL 5.7 und MariaDB vor 10.5 liegen außerhalb des unterstützten Bereichs, und TiDB hat andere Monitoring-Tabellen. Die App sagt Ihnen das beim Verbinden.

Erreicht es eine Datenbank hinter einem Bastion-Host?

Ja. Schalten Sie in der Verbindung den SSH-Tunnel ein und melden Sie sich am Bastion-Host mit einem Passwort, einem Schlüssel oder einem auf diesem iPhone erzeugten Schlüssel für Secure Enclave an. Schlüssel können Ed25519, ECDSA oder RSA im Format OpenSSH, PEM, PKCS#8 oder PuTTY sein, mit oder ohne Passphrase. Einmalcodes funktionieren, wenn der Server danach fragt.

Liegt der Bastion-Host hinter einem weiteren Host, fügen Sie bis zu zwei Jump-Hosts hinzu. RowDeck pinnt jeden Hostschlüssel bei der ersten Verbindung und macht nicht weiter, wenn sich einer ändert.

Verlassen meine Zugangsdaten oder Daten mein iPhone?

RowDeck verbindet sich direkt mit Ihrem Server oder über Ihren Bastion-Host. Dazwischen steht kein RowDeck-Server, und Sie brauchen kein Konto. Passwörter und Schlüssel bleiben im iOS Keychain.

Absturzberichte gehen an Sentry und Nutzungszahlen an unseren eigenen Analyseserver, sobald Sie auf dem ersten Bildschirm auf „Fertig“ tippen; dort sind beide Schalter anfangs eingeschaltet. Sie können jeden davon dort oder später unter Einstellungen › Datenschutz ausschalten. Keines von beiden enthält Ihr SQL, Schema-, Tabellen- oder Spaltennamen, Hostnamen, Werte oder Zugangsdaten. Details stehen in der Datenschutzerklärung.

Brauche ich SUPER oder ein Admin-Konto?

Nein. Die Monitoring-Bildschirme brauchen nur Leserechte, und das Verbindungsformular listet sie für MySQL und für MariaDB auf. Am wichtigsten ist PROCESS: Ohne dieses Recht zeigt MySQL Ihnen nur Ihre eigenen Threads, und RowDeck sagt das auf jedem Bildschirm, statt eine leere Liste zu zeigen.

Pro-Aktionen brauchen CONNECTION_ADMIN, um Threads anderer Benutzer zu beenden; auf Amazon RDS und Aurora nutzt RowDeck stattdessen die Kill-Prozedur des Anbieters. Eine Metrik, die der Server verbirgt, zeigt einen Grund, nie eine Null.

KILL QUERY oder KILL CONNECTION: was wann?

KILL QUERY stoppt die laufende Anweisung und behält Verbindung und Transaktion bei. KILL CONNECTION schließt die Verbindung und rollt ihre offene Transaktion zurück.

Ein Thread, der in einer offenen Transaktion schläft, führt keine Anweisung aus, also ändert KILL QUERY nichts, und seine Sperren bleiben. RowDeck liest, was die Wurzel gerade tut, und bietet die Variante an, die die Warteschlange freigibt.

Kann RowDeck meine Datenbank kaputt machen?

Free schreibt nie: Lesezugriffe in der Konsole laufen in einer schreibgeschützten Transaktion. Mit Pro durchläuft jeder Schreibzugriff vier Prüfungen in dieser Reihenfolge: Pro, den Schalter „Read-only“ der Verbindung, den Klassifikator und Ihre Bestätigung. Destruktive Anweisungen warten, bis Sie das Ziel eintippen, und eine als Production markierte Verbindung bekommt das Badge PROD und strengere Bestätigungen.

RowDeck kopiert DROP INDEX und ALTER … BIGINT für Sie und überlässt Ihnen das Ausführen. Es löscht keine binlogs, überspringt keine Transaktion auf einem Replikat und verlangt vom Server nie LOAD DATA LOCAL oder mehrere Anweisungen in einem Aufruf.

Warum nicht per SSH einloggen und mysql starten?

Können Sie. Um 3 Uhr nachts auf einer Handytastatur erspart Ihnen RowDeck die Joins über performance_schema und information_schema: Sperrbaum, das wartende ALTER und die Transaktion dahinter sind einen Tipp von „Zustand“ entfernt.

Was sieht der AI-Assistent?

Einen bereinigten Snapshot des Bildschirms, zu dem Sie gefragt haben. Host, Port, IP-Adressen, Verbindungsnamen und Passwörter gehen nie hinaus, Werte innerhalb von Anweisungen ebenso wenig. Bei Cloud-Modellen gehen Schema-, Tabellen- und Spaltennamen als Platzhalter wie table_1 hinaus, und RowDeck setzt die echten Namen auf Ihrem iPhone wieder ein.

Anfragen gehen von Ihrem iPhone mit Ihrem eigenen Schlüssel an den Anbieter Ihrer Wahl (Anthropic, OpenAI, OpenRouter, Z.ai oder ein beliebiger OpenAI-kompatibler Endpunkt) oder an Ihr eigenes Ollama. Sie sehen, was das Modell bekommt, bevor Sie senden. Der Assistent gehört zu Pro, ist in der Demo kostenlos und überlässt das Ausführen von SQL Ihnen.

Gibt es ein Abo?

Nein. Pro ist ein einmaliger Kauf für 14,99 $, gebunden an Ihren Apple Account. Monitoring bleibt kostenlos, ohne Konto und ohne ablaufende Testphase.

Alarmiert es mich, wenn etwas kaputtgeht?

Nein. RowDeck arbeitet nicht im Hintergrund und überwacht keine Server, solange es geschlossen ist. Behalten Sie Ihr Alerting, wo es ist: RowDeck ist der Bildschirm, den Sie nach dem Alarm öffnen.

Läuft es auf dem iPad?

Wir haben RowDeck für das iPhone im Hochformat gebaut. Ein eigenes iPad-Layout hat es nicht.

Amazon Web Services, AWS, Amazon RDS und Amazon Aurora sind Marken von Amazon.com, Inc. oder seinen verbundenen Unternehmen. RowDeck ist nicht mit Amazon verbunden und wird nicht von Amazon unterstützt.

Anleitungen

Anleitungen für MySQL-Vorfälle.

Die Probleme, die Sie nachts wecken, je eine Seite: das SQL zum Ausführen von Hand und was RowDeck zeigt.

Die Anleitungen und der Blog sind auf Englisch.

Aus dem Blog

Alle Beiträge

Holen Sie es sich aufs iPhone, bevor der nächste Vorfall kommt.

Server hinzufügen, Zertifikat pinnen, und jeder Monitoring-Bildschirm bleibt kostenlos. Pro schaltet die Aktionen für die Nacht frei, in der Sie sie brauchen.

Free Pro 14,99 $ einmalig MySQL 8.0+ und MariaDB 10.5+ iOS 17+ iPhone