RowDeck: MySQL® Monitor pour iPhone

Voyez ce qui brûle dans votre MySQL. Éteignez le feu.

Une alerte la nuit, et votre ordinateur portable est resté à la maison ? RowDeck s’ouvre sur Santé, trouve la transaction qui tient le verrou et compte les sessions bloquées derrière elle. Terminez le bon thread depuis votre iPhone, puis faites la vraie correction à votre bureau.

Bientôt sur l’App Store Me prévenir par e-mail à la sortie

Free Pro 14,99 $US en achat unique MySQL 8.0+ et MariaDB 10.5+ iOS 17+ iPhone

Voir un incident en quatre écrans
Compatible avec MySQL 8.0 et ultérieurMariaDB 10.5 et ultérieurPercona Server for MySQLAmazon RDSAurora MySQLVos propres serveurs
La boucle de 3 h du matin

De l’alerte au déblocage en quatre écrans.

La démo intégrée rejoue un incident MySQL courant. Une transaction oubliée tient un verrou de ligne sur shop.orders, une migration attend derrière elle, et huit sessions font la queue. Choisissez une étape pour voir son écran.

Essayez sans serveur : sur l’écran Connexions, touchez Explorer les données de démo. Aucun compte n’est nécessaire, et les actions Pro s’exécutent sur les données d’exemple.

Écran Santé de prod-shop en état Critique : Bloquées indique 8 en attente, connexions 112 sur 151, la requête la plus longue à 09:12
Santé · Critique · 8 en attente
  • Verrous de ligne

    Les attentes de verrous InnoDB regroupées sous le thread qui les tient, avec le SQL que chacun exécute et depuis combien de temps il attend.

  • Metadata locks

    La file d’attente autour d’un ALTER TABLE : qui attend un metadata lock sur la table, quelle transaction le garde, et un bouton pour annuler plutôt l’ALTER en attente.

  • Deadlocks

    Le dernier deadlock signalé par InnoDB : qui attendait quoi, et quelle transaction InnoDB a annulée.

  • Terminer sur Amazon RDS

    Pas de droit KILL sur Amazon RDS ou Aurora ? RowDeck appelle mysql.rds_kill et indique la méthode dans la confirmation.

Purge et ballonnement

Surveillez AUTO_INCREMENT avant que les INSERT commencent à échouer.

L’écran Purge et ballonnement montre quelle part de chaque plage auto-increment est déjà utilisée, quel retard la purge a pris, et quelles tables et quels index occupent de l’espace pour rien.

  • La marge par colonne. À 93 % de la plage INT de order_items.id, RowDeck avertit que tout INSERT échouera une fois la plage épuisée et copie l’ALTER qui élargit la colonne.
  • La History list length, avec la transaction la plus ancienne qui empêche InnoDB de purger les anciennes versions de lignes.
  • Les tables fragmentées, et les index inutilisés ou dupliqués avec l’espace que chacun occupe.
  • Lancez ANALYZE TABLE depuis la liste, ou OPTIMIZE TABLE après avoir saisi le nom de la table. Les instructions DROP INDEX et ALTER vont dans votre presse-papiers, et c’est vous qui décidez quand les exécuter. PRO
Écran Purge et ballonnement : order_items.id à 93 % de sa plage INT, avec l’avertissement que tout INSERT échouera une fois la plage épuisée, un retard de purge de 1.2M et la transaction la plus ancienne
Dans l’app

Chaque écran que vous ouvrez pendant un incident MySQL.

Santé en premier, et un écran natif derrière chaque tuile, pour vous épargner l’invite mysql sur un clavier de téléphone. La console SQL couvre le reste et vérifie chaque instruction avant son exécution.

  • Santé

    Un verdict et dix tuiles avec des seuils : connexions face à max_connections, threads bloqués, requête la plus longue, requêtes par seconde, succès du buffer pool, retard de purge, marge d’auto-increment, deadlocks, réplication et disque. L’écran s’actualise toutes les 10 secondes tant que vous le regardez, en sombre ou en clair comme iOS.

    Écran Santé dans l’apparence claire de l’app : Critique, 8 en attente, connexions 112 sur 151
  • Activité

    Tous les threads de la processlist, ceux en attente d’abord. Filtrez les threads en cours, en transaction, de plus de 10 s ou en attente, ou regroupez-les par client.

  • Réplication

    Côté réplica : threads IO et SQL, retard, et l’erreur qui a arrêté un canal. Côté source : les réplicas connectés et l’espace occupé par les binlogs.

  • Requêtes lentes

    Les digests d’instructions de performance_schema, triés par temps total, temps moyen, appels ou lignes examinées.

  • Stockage

    Les plus gros schémas, tables et index, répartis entre données, index et espace libre.

  • Données

    Parcourez les tables, filtrez côté serveur, suivez les clés étrangères, exportez une page en CSV ou copiez-la en JSON. La modification des lignes vient avec Pro.

  • Console SQL

    Le classificateur étiquette chaque instruction pendant la saisie : Lecture, Écriture, DDL ou Destructif. Free exécute les lectures ; Pro exécute le reste.

  • PRO

    Assistant IA sur votre propre modèle

    Explique un incident ou une chaîne de verrous et rédige le correctif. Il lit un instantané expurgé, vous montre ce qu’il va envoyer, et n’exécute rien lui-même. Gratuit sur la démo.

    • Anthropic
    • OpenAI
    • OpenRouter
    • Z.ai
    • Serveur compatible OpenAI
    • Ollama sur votre réseau
Avant toute écriture

Quatre contrôles séparent votre pouce du serveur.

RowDeck les vérifie dans l’ordre. Un non à n’importe quelle étape arrête l’action, et rien n’atteint MySQL.

  1. Pro

    Free n’écrit jamais sur votre serveur.

  2. Connexion Read-only

    Marquez une connexion Read-only, et les écritures s’y arrêtent, Pro compris, jusqu’à ce que vous les débloquiez pour la session.

  3. Classificateur

    Il s’exécute sur chaque instruction, avec Free comme avec Pro.

  4. Votre confirmation

    Un aperçu avec la cible, le schéma, la connexion et le badge PROD. Les étapes destructives, et l’arrêt d’un thread sur une connexion Production, attendent que vous saisissiez la cible.

Ce que le classificateur a vu prod-shop PROD
SELECT * FROM orders WHERE id = 4820118; Lecture
UPDATE orders SET status = 'shipped' WHERE id = 4820118; Écriture
CREATE INDEX idx_orders_total ON orders (total); DDL
TRUNCATE TABLE shop.sessions; Destructif
  • Via votre bastion

    SSH avec mot de passe, code à usage unique ou clé : Ed25519, ECDSA ou RSA au format OpenSSH, PEM, PKCS#8 ou PuTTY, ou une clé Secure Enclave. Jusqu’à deux hôtes relais derrière le bastion.

  • TLS épinglé

    RowDeck affiche l’empreinte SHA-256 du certificat du serveur à la première connexion et s’arrête si elle change ensuite.

  • Keychain et Face ID

    Mots de passe, clés et empreintes sont conservés dans l’iOS Keychain de cet iPhone. Face ID ouvre l’app.

  • Honnête sans PROCESS

    Sans ce droit, MySQL ne vous montre que vos propres threads. RowDeck le dit et vous donne le correctif :

    GRANT PROCESS ON *.* TO 'oncall'@'%';
Écrans

RowDeck 1.0 sur les données de démo intégrées.

Écran Santé : Critique, 8 en attente, dix tuiles

Santé L’incident avant même d’ouvrir un ordinateur.

Arbre de l’écran Verrous avec deux racines de blocage et un ALTER TABLE qui attend un metadata lock

Verrous Verrous de ligne et metadata locks dans un même arbre.

Feuille « Terminer la connexion bloquante » avec l’ID du thread saisi pour confirmer

Terminer la connexion Voyez ce qu’elle débloque avant de confirmer.

Écran Activité avec les filtres En cours, En trans., > 10 s, En attente et Toutes

Activité Les threads en attente d’abord.

Purge et ballonnement : six index inutilisés qui occupent 34 Go, avec Copier la requête DROP INDEX

Index Index inutilisés et dupliqués, DROP INDEX copié pour vous.

Réplication sur un réplica : threads IO et SQL en cours, 4,2 s de retard sur la source

Réplication État du canal et transactions à appliquer.

Requêtes lentes triées par temps total, avec appels, temps moyen et lignes examinées

Requêtes lentes Triées par temps total.

Écran Stockage : 412 Go de données et d’index, les schémas et les plus grosses tables

Stockage Les plus grosses tables et les plus gros index.

Onglet Données de shop.orders avec un filtre sur les commandes en attente

Données Filtrer sur la page ou côté serveur.

Console SQL avec une requête de lecture sur performance_schema et son résultat

Console SQL Chaque instruction classée.

Console SQL avec CREATE INDEX classé DDL, qui valide toute transaction ouverte

DDL Ce que le classificateur a vu avant l’exécution.

Réponse de l’assistant sur une transaction oubliée qui tient un verrou de ligne, avec les threads qu’il propose de terminer

Assistant Votre modèle, chaque action décidée par vous.

Formulaire de nouvelle connexion avec un tunnel SSH via un bastion et l’import d’une clé

Tunnel SSH Avec votre clé et vos hôtes relais.

Santé L’incident avant même d’ouvrir un ordinateur.

Tarifs

La surveillance est gratuite. Pro est un achat unique.

Pointez RowDeck sur votre serveur de production et utilisez gratuitement tous les écrans de surveillance. Payez 14,99 $US une seule fois, la nuit où vous devez agir.

Free

pour toujours

0 $US

Tout voir sur un serveur.

  • Une connexion enregistrée. La démo et un réplica ouvert depuis sa source ne comptent pas.
  • Santé, Activité, Verrous, Purge et ballonnement, Réplication, Stockage et Requêtes lentes
  • TLS avec empreinte épinglée, tunnels SSH et Face ID
  • Navigateur de données avec filtres côté serveur, clés étrangères, export CSV et copie JSON
  • SQL en lecture seule avec le classificateur

Pro

achat unique

14,99 $US

Agir sur n’importe quel serveur.

  • Connexions enregistrées illimitées
  • Terminer les requêtes et les connexions, débloquer une chaîne bloquée
  • Exécuter ANALYZE TABLE et OPTIMIZE TABLE
  • Écritures, DDL et édition de lignes, derrière des confirmations
  • L’assistant IA avec votre propre clé ou votre propre Ollama

Sans abonnement et sans compte. La démo vous permet d’essayer chaque action Pro sur des données d’exemple avant d’acheter. Restaurer les achats figure sur l’écran Pro et dans Réglages. Hors des États-Unis, l’App Store affiche le prix dans votre devise.

Bientôt sur l’App Store Me prévenir par e-mail à la sortie

Free Pro 14,99 $US en achat unique MySQL 8.0+ et MariaDB 10.5+ iOS 17+ iPhone

FAQ

Questions sur RowDeck et MySQL

Il manque quelque chose ? Écrivez à support@rowdeck.app.

Fonctionne-t-il avec Amazon RDS, Aurora ou mes propres serveurs ?

RowDeck fonctionne avec MySQL 8.0 ou ultérieur et MariaDB 10.5 ou ultérieur, dès lors que votre iPhone peut joindre le serveur, auto-hébergé ou géré, y compris Amazon RDS et Aurora MySQL. Percona Server for MySQL fonctionne aussi.

Sur Amazon RDS et Aurora, où un administrateur ne peut pas faire un KILL sur les threads d’autres utilisateurs, RowDeck appelle la procédure du fournisseur, mysql.rds_kill. Derrière un proxy, il n’envoie pas de KILL, car l’ID du thread peut appartenir à un autre serveur, et vous donne l’instruction à exécuter sur le serveur lui-même.

MySQL 5.7 et MariaDB avant 10.5 sont hors de la plage prise en charge, et TiDB utilise d’autres tables de surveillance. L’app vous le signale à la connexion.

Peut-il joindre une base derrière un bastion ?

Oui. Activez le tunnel SSH dans la connexion et authentifiez-vous sur le bastion avec un mot de passe, une clé ou une clé Secure Enclave créée sur cet iPhone. Les clés peuvent être Ed25519, ECDSA ou RSA au format OpenSSH, PEM, PKCS#8 ou PuTTY, avec ou sans phrase secrète. Les codes à usage unique fonctionnent quand le serveur les demande.

Si le bastion se trouve derrière un autre hôte, ajoutez jusqu’à deux hôtes relais. RowDeck épingle chaque clé d’hôte à la première connexion et refuse de continuer si l’une d’elles change.

Mes identifiants ou mes données quittent-ils mon iPhone ?

RowDeck se connecte directement à votre serveur ou via votre bastion. Aucun serveur RowDeck ne se trouve entre les deux, et vous n’avez besoin d’aucun compte. Les mots de passe et les clés restent dans l’iOS Keychain.

Les rapports de plantage vont à Sentry et les statistiques d’utilisation à notre propre serveur d’analyse dès que vous touchez Terminé sur le premier écran, où les deux options sont activées au départ. Vous pouvez désactiver l’une ou l’autre à cet endroit, ou plus tard dans Réglages › Confidentialité. Ni l’un ni l’autre ne contient votre SQL, vos noms de schémas, de tables ou de colonnes, vos noms d’hôtes, vos valeurs ni vos identifiants. Les détails sont dans la politique de confidentialité.

Faut-il SUPER ou un compte administrateur ?

Non. Les écrans de surveillance demandent des droits en lecture seule, et le formulaire de connexion les liste pour MySQL et pour MariaDB. Le plus important est PROCESS : sans lui, MySQL ne vous montre que vos propres threads, et RowDeck le signale sur chaque écran au lieu d’afficher une liste vide.

Les actions Pro demandent CONNECTION_ADMIN pour terminer les threads d’autres utilisateurs ; sur Amazon RDS et Aurora, RowDeck utilise à la place la procédure de kill du fournisseur. Une métrique que le serveur cache affiche une raison, jamais un zéro.

KILL QUERY ou KILL CONNECTION : lequel choisir ?

KILL QUERY arrête l’instruction en cours et conserve la connexion et sa transaction. KILL CONNECTION ferme la connexion et effectue le rollback de sa transaction ouverte.

Un thread endormi dans une transaction ouverte n’exécute aucune instruction : KILL QUERY ne change donc rien, et ses verrous restent. RowDeck lit ce que fait la racine et propose l’action qui libère la file.

RowDeck peut-il casser ma base de données ?

Free n’écrit jamais : les lectures de la console s’exécutent dans une transaction en lecture seule. Avec Pro, chaque écriture passe quatre contrôles, dans l’ordre : Pro, l’option Read-only de la connexion, le classificateur et votre confirmation. Les instructions destructives attendent que vous saisissiez la cible, et une connexion marquée Production reçoit un badge PROD et des confirmations plus strictes.

RowDeck copie DROP INDEX et ALTER … BIGINT pour vous et vous laisse les exécuter. Il ne purge pas les binlogs, ne saute pas de transaction sur un réplica, et ne demande jamais au serveur LOAD DATA LOCAL ni plusieurs instructions en un seul appel.

Pourquoi ne pas se connecter en SSH et lancer mysql ?

Vous le pouvez. À 3 h du matin, sur un clavier de téléphone, RowDeck vous épargne les jointures entre performance_schema et information_schema : l’arbre des verrous, l’ALTER en attente et la transaction derrière lui sont à un toucher de l’écran Santé.

Que voit l’assistant IA ?

Un instantané expurgé de l’écran sur lequel porte votre question. L’hôte, le port, les adresses IP, les noms de connexion et les mots de passe ne partent jamais, pas plus que les valeurs contenues dans les instructions. Pour les modèles cloud, les noms de schémas, de tables et de colonnes partent sous forme d’espaces réservés comme table_1, et RowDeck rétablit les vrais noms sur votre iPhone.

Les demandes partent de votre iPhone vers le fournisseur que vous avez choisi, avec votre propre clé (Anthropic, OpenAI, OpenRouter, Z.ai ou tout point de terminaison compatible OpenAI), ou vers votre propre Ollama. Vous voyez ce que recevra le modèle avant d’envoyer. L’assistant fait partie de Pro, est gratuit sur la démo et vous laisse exécuter le SQL.

Y a-t-il un abonnement ?

Non. Pro est un achat unique de 14,99 $US, lié à votre compte Apple. La surveillance reste gratuite, sans compte et sans période d’essai qui expire.

M’alertera-t-il en cas de panne ?

Non. RowDeck ne travaille pas en arrière-plan et ne surveille aucun serveur quand il est fermé. Gardez votre système d’alerte tel quel : RowDeck est l’écran que vous ouvrez après l’alerte.

Fonctionne-t-il sur iPad ?

Nous avons conçu RowDeck pour l’iPhone, en portrait. Il n’a pas de mise en page propre à l’iPad.

Amazon Web Services, AWS, Amazon RDS et Amazon Aurora sont des marques d’Amazon.com, Inc. ou de ses sociétés affiliées. RowDeck n’est ni affilié à Amazon ni approuvé par Amazon.

Guides

Guides pour les incidents MySQL.

Les problèmes qui vous réveillent la nuit, une page pour chacun : le SQL à exécuter à la main et ce que montre RowDeck.

Les guides et le blog sont en anglais.

Sur le blog

Tous les articles

Installez-le sur votre téléphone avant le prochain incident.

Ajoutez un serveur, épinglez son certificat, et tous les écrans de surveillance restent gratuits. Pro débloque les actions pour la nuit où vous en aurez besoin.

Bientôt sur l’App Store Me prévenir par e-mail à la sortie

Free Pro 14,99 $US en achat unique MySQL 8.0+ et MariaDB 10.5+ iOS 17+ iPhone