RowDeck: MySQL® Monitor para iPhone

Veja o que está queimando no seu MySQL. Apague o fogo.

Foi acionado de madrugada e o notebook ficou em casa? O RowDeck abre em Saúde, encontra a transação que segura o bloqueio e conta as sessões presas atrás dela. Encerre a thread certa pelo iPhone e faça a correção de verdade na sua mesa.

Free Pro US$ 14,99 pagamento único MySQL 8.0+ e MariaDB 10.5+ iOS 17+ iPhone

Veja um incidente em quatro telas
Funciona com MySQL 8.0 ou posteriorMariaDB 10.5 ou posteriorPercona Server for MySQLAmazon RDSAurora MySQLSeus próprios servidores
Às 3 da manhã

Do alerta ao desbloqueio em quatro telas.

A demo integrada reproduz um incidente comum no MySQL. Uma transação esquecida segura um bloqueio de linha em shop.orders, uma migração espera atrás dela e oito sessões entram na fila. Escolha um passo para ver a tela dele.

Experimente sem servidor: na tela Conexões, toque em Explorar dados de demonstração. Você não precisa de conta, e as ações do Pro rodam nos dados de exemplo.

Tela Saúde do prod-shop em estado Crítico: Bloqueadas mostra 8 aguardando, conexões 112 de 151, a consulta mais longa em 09:12
Saúde · Crítico · 8 aguardando
  • Bloqueios de linha

    Esperas de bloqueio do InnoDB agrupadas sob a thread que segura os bloqueios, com o SQL que cada uma executa e há quanto tempo espera.

  • Metadata locks

    A fila do ALTER TABLE: quem espera um metadata lock da tabela, qual transação o mantém e um botão para cancelar o ALTER em espera no lugar dela.

  • Deadlocks

    O último deadlock do InnoDB: quem esperava o quê e qual transação foi revertida.

  • Encerrar no Amazon RDS

    Sem direito de KILL no Amazon RDS ou no Aurora? O RowDeck chama mysql.rds_kill e indica esse caminho na confirmação.

Purge e inchaço

Pegue o AUTO_INCREMENT antes que os INSERTs comecem a falhar.

Purge e inchaço mostra quanto de cada faixa de auto-increment você já usou, quanto o purge ficou para trás e quais tabelas e índices ocupam espaço à toa.

  • Margem por coluna. Com order_items.id em 93% da faixa do INT, o RowDeck avisa que, no limite, todo INSERT falha, e copia o ALTER que amplia a coluna.
  • History list length, com a transação mais antiga que impede o InnoDB de fazer purge das versões antigas das linhas.
  • Tabelas fragmentadas e índices não usados ou duplicados, com o espaço que cada um ocupa.
  • Rode ANALYZE TABLE direto da lista, ou OPTIMIZE TABLE depois de digitar o nome da tabela. Os comandos DROP INDEX e ALTER vão para a área de transferência, e você decide quando executá-los. PRO
Tela Purge e inchaço: order_items.id em 93% da faixa INT com o aviso de que, no limite, todo INSERT falha, atraso de purge de 1,2 mi e a transação mais antiga
Dentro do app

Todas as telas que você abre durante um incidente no MySQL.

Saúde logo de cara e uma tela nativa por trás de cada indicador, para você não precisar do prompt do mysql no teclado do celular. O console SQL cobre o resto e verifica cada comando antes de executá-lo.

  • Saúde

    Um veredito e dez indicadores com limites: conexões em relação a max_connections, threads bloqueadas, a consulta mais longa, consultas por segundo, acertos no buffer pool, atraso de purge, margem de auto-increment, deadlocks, replicação e disco. Atualiza a cada 10 segundos enquanto você olha, no modo escuro ou claro, como o iOS.

    Tela Saúde no modo claro do app: Crítico, 8 aguardando, conexões 112 de 151
  • Atividade

    Todas as threads do processlist, com as que estão esperando primeiro. Filtre por em execução, em transação, mais de 10 s ou em espera, ou agrupe as threads por cliente.

  • Replicação

    Na réplica: threads de IO e SQL, atraso e o erro que parou um canal. Na origem: réplicas conectadas e o espaço que os binlogs ocupam.

  • Consultas lentas

    Digests de instruções do performance_schema, ordenados por tempo total, tempo médio, chamadas ou linhas examinadas.

  • Armazenamento

    Os maiores esquemas, tabelas e índices, divididos em dados, índice e espaço livre.

  • Dados

    Navegue pelas tabelas, filtre no servidor, siga chaves estrangeiras, exporte uma página como CSV ou copie como JSON. A edição de linhas vem com o Pro.

  • Console SQL

    O classificador marca cada comando enquanto você digita: Leitura, Escrita, DDL ou Destrutivo. O Free executa leituras; o Pro executa o resto.

  • PRO

    Assistente de IA no seu próprio modelo

    Explica um incidente ou uma cadeia de bloqueios e rascunha a correção. Lê um snapshot mascarado, mostra o que vai enviar e não executa nada por conta própria. Grátis na demo.

    • Anthropic
    • OpenAI
    • OpenRouter
    • Z.ai
    • Servidor compatível com OpenAI
    • Ollama na sua rede
Antes de qualquer escrita

Quatro verificações ficam entre o seu dedo e o servidor.

O RowDeck faz essas verificações em ordem. Um não em qualquer etapa interrompe a ação, e nada chega ao MySQL.

  1. Pro

    O Free nunca escreve no seu servidor.

  2. Conexão Read-only

    Marque uma conexão como Read-only e as escritas param ali, mesmo com o Pro, até você desbloqueá-las para a sessão.

  3. Classificador

    Roda em cada comando, no Free e no Pro.

  4. Sua confirmação

    Uma prévia com o alvo, o esquema, a conexão e o selo PROD. Etapas destrutivas, e encerramentos em uma conexão Production, esperam até você digitar o alvo.

O que o classificador viu prod-shop PROD
SELECT * FROM orders WHERE id = 4820118; Leitura
UPDATE orders SET status = 'shipped' WHERE id = 4820118; Escrita
CREATE INDEX idx_orders_total ON orders (total); DDL
TRUNCATE TABLE shop.sessions; Destrutivo
  • Pelo seu bastião

    SSH com senha, código de uso único ou chave: Ed25519, ECDSA ou RSA no formato OpenSSH, PEM, PKCS#8 ou PuTTY, ou uma chave do Secure Enclave. Até dois hosts de salto atrás do bastião.

  • TLS fixado

    O RowDeck mostra a impressão digital SHA-256 do certificado do servidor na primeira conexão e para se ela mudar depois.

  • Keychain e Face ID

    Senhas, chaves e impressões digitais ficam no iOS Keychain deste iPhone. O Face ID abre o app.

  • Honesto sem PROCESS

    Sem essa permissão, o MySQL mostra só as suas próprias threads. O RowDeck avisa e entrega a correção:

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

RowDeck 1.0 com os dados de demonstração integrados.

Tela Saúde: Crítico, 8 aguardando, dez indicadores

Saúde O incidente antes de você abrir o notebook.

Árvore de bloqueios com dois bloqueadores raiz e um ALTER TABLE esperando um metadata lock

Bloqueios Bloqueios de linha e metadata locks em uma só árvore.

Painel Encerrar a conexão que bloqueia com o ID da thread digitado para confirmar

Encerrar a conexão Veja o que ela desbloqueia antes de confirmar.

Tela Atividade com os filtros Em execução, Em transação, > 10 s, Em espera e Todos

Atividade Threads em espera primeiro.

Purge e inchaço: seis índices não usados ocupando 34 GB, com Copiar o comando DROP INDEX

Índices Índices não usados e duplicados, com o DROP INDEX copiado para você.

Replicação em uma réplica: threads de IO e SQL em execução, 4,2 s atrás da origem

Replicação Status do canal e transações a aplicar.

Consultas lentas ordenadas por tempo total, com chamadas, tempo médio e linhas examinadas

Consultas lentas Ordenadas por tempo total.

Tela Armazenamento: 412 GB de dados e índices, os esquemas e as maiores tabelas

Armazenamento As maiores tabelas e índices.

Aba Dados de shop.orders com um filtro de pedidos pendentes

Dados Filtre na página ou no servidor.

Console SQL com uma consulta de leitura no performance_schema e o resultado

Console SQL Cada comando classificado.

Console SQL com CREATE INDEX classificado como DDL, que faz commit de qualquer transação aberta

DDL O que o classificador viu antes de executar.

Resposta do assistente sobre uma transação esquecida que segura um bloqueio de linha, com os encerramentos sugeridos

Assistente O seu modelo, e cada ação é decisão sua.

Formulário de nova conexão com túnel SSH por um bastião e importação de chave

Túnel SSH Com a sua chave e seus hosts de salto.

Saúde O incidente antes de você abrir o notebook.

Preços

O monitoramento é grátis. O Pro é uma compra única.

Aponte o RowDeck para o seu servidor de produção e use todas as telas de monitoramento de graça. Pague US$ 14,99 uma vez, na noite em que precisar agir.

Free

para sempre

US$ 0

Veja tudo em um servidor.

  • Uma conexão salva. A demo e uma réplica aberta a partir da origem não contam.
  • Saúde, Atividade, Bloqueios, Purge e inchaço, Replicação, Armazenamento e Consultas lentas
  • TLS com impressão digital fixada, túneis SSH e Face ID
  • Navegador de dados com filtros no servidor, chaves estrangeiras, exportação em CSV e cópia em JSON
  • SQL somente leitura com o classificador

Pro

compra única

US$ 14,99

Aja em qualquer servidor.

  • Conexões salvas ilimitadas
  • Encerrar consultas e conexões, desbloquear uma cadeia travada
  • Executar ANALYZE TABLE e OPTIMIZE TABLE
  • Escrita, DDL e edição de linhas, com confirmações
  • O assistente de IA com a sua própria chave ou o seu próprio Ollama

Sem assinatura e sem conta. A demo deixa você testar cada ação do Pro com dados de exemplo antes de comprar. Restaurar compras fica na tela de compra e em Ajustes. Fora dos EUA, a App Store mostra o preço na sua moeda.

Free Pro US$ 14,99 pagamento único MySQL 8.0+ e MariaDB 10.5+ iOS 17+ iPhone

Perguntas

Perguntas sobre o RowDeck e o MySQL

Faltou alguma coisa? Escreva para support@rowdeck.app.

Funciona com Amazon RDS, Aurora ou meus próprios servidores?

O RowDeck funciona com MySQL 8.0 ou posterior e MariaDB 10.5 ou posterior que o seu iPhone consiga alcançar, auto-hospedados ou gerenciados, incluindo Amazon RDS e Aurora MySQL. O Percona Server for MySQL também funciona.

No Amazon RDS e no Aurora, onde um admin não pode dar KILL em threads de outros usuários, o RowDeck chama o procedimento do provedor, mysql.rds_kill. Atrás de um proxy, ele não envia KILL, porque o ID da thread pode pertencer a outro servidor, e entrega o comando para você executar no próprio servidor.

MySQL 5.7 e MariaDB anterior à 10.5 estão fora da faixa suportada, e o TiDB usa outras tabelas de monitoramento. O app avisa isso quando você se conecta.

Dá para acessar um banco de dados atrás de um bastião?

Sim. Ative o túnel SSH na conexão e entre no bastião com uma senha, uma chave ou uma chave do Secure Enclave criada neste iPhone. As chaves podem ser Ed25519, ECDSA ou RSA no formato OpenSSH, PEM, PKCS#8 ou PuTTY, com ou sem senha da chave. Códigos de uso único funcionam quando o servidor pede.

Se o bastião fica atrás de outro host, adicione até dois hosts de salto. O RowDeck fixa a chave de cada host na primeira conexão e se recusa a continuar se alguma mudar.

Minhas credenciais ou meus dados saem do meu iPhone?

O RowDeck se conecta direto ao seu servidor ou pelo seu bastião. Nenhum servidor do RowDeck fica no meio, e você não precisa de conta. Senhas e chaves ficam no iOS Keychain.

Os relatórios de falhas vão para o Sentry e as contagens de uso para o nosso próprio servidor de análises depois que você toca em Concluído na primeira tela, onde as duas opções começam ativadas. Você pode desativar qualquer uma delas ali mesmo ou depois em Ajustes › Privacidade. Nenhum dos dois contém o seu SQL, nomes de esquemas, tabelas ou colunas, nomes de host, valores ou credenciais. Os detalhes estão na política de privacidade.

Preciso de SUPER ou de uma conta de administrador?

Não. As telas de monitoramento precisam de permissões somente leitura, e o formulário de conexão lista essas permissões para o MySQL e para o MariaDB. A que mais importa é PROCESS: sem ela, o MySQL mostra só as suas próprias threads, e o RowDeck avisa isso em cada tela em vez de mostrar uma lista vazia.

As ações do Pro precisam de CONNECTION_ADMIN para encerrar threads de outros usuários; no Amazon RDS e no Aurora, o RowDeck usa o procedimento de kill do provedor. Uma métrica que o servidor esconde mostra um motivo, nunca um zero.

KILL QUERY ou KILL CONNECTION: qual usar?

KILL QUERY interrompe o comando em execução e mantém a conexão e a transação dela. KILL CONNECTION fecha a conexão e faz rollback da transação aberta.

Uma thread em Sleep com uma transação aberta não executa nenhum comando, então KILL QUERY não muda nada e os bloqueios dela continuam. O RowDeck vê o que a raiz está fazendo e oferece o kill que libera a fila.

O RowDeck pode quebrar meu banco de dados?

O Free nunca escreve: as leituras do console rodam dentro de uma transação somente leitura. Com o Pro, cada escrita passa por quatro verificações, nesta ordem: Pro, a opção Read-only da conexão, o classificador e a sua confirmação. Comandos destrutivos esperam até você digitar o alvo, e uma conexão marcada como Production ganha o selo PROD e confirmações mais rígidas.

O RowDeck copia DROP INDEX e ALTER … BIGINT para você e deixa a execução por sua conta. Ele não faz purge de binlogs nem pula uma transação em uma réplica, e nunca pede ao servidor LOAD DATA LOCAL nem vários comandos em uma só chamada.

Por que não entrar por SSH e rodar o mysql?

Dá para fazer isso. Às 3 da manhã, no teclado do celular, o RowDeck poupa você dos joins entre performance_schema e information_schema: a árvore de bloqueios, o ALTER em espera e a transação por trás dele ficam a um toque da tela Saúde.

O que o assistente de IA vê?

Um snapshot mascarado da tela sobre a qual você perguntou. Host, porta, endereços IP, nomes de conexão e senhas nunca saem do iPhone, e os valores dentro dos comandos também não. Para modelos na nuvem, os nomes de esquemas, tabelas e colunas saem na forma de marcadores, como table_1, e o RowDeck devolve os nomes reais no seu iPhone.

As requisições vão do seu iPhone para o provedor que você escolheu, com a sua própria chave (Anthropic, OpenAI, OpenRouter, Z.ai ou qualquer endpoint compatível com OpenAI), ou para o seu próprio Ollama. Você vê o que o modelo vai receber antes de enviar. O assistente faz parte do Pro, é grátis na demo e deixa a execução do SQL com você.

Tem assinatura?

Não. O Pro é uma compra única de US$ 14,99 vinculada à sua Conta Apple. O monitoramento continua grátis, sem conta e sem período de teste que expira.

O RowDeck me avisa quando algo quebrar?

Não. O RowDeck não trabalha em segundo plano e não monitora servidores enquanto está fechado. Mantenha seus alertas onde estão: o RowDeck é a tela que você abre depois de ser acionado.

Funciona no iPad?

Fizemos o RowDeck para iPhone, na vertical. Ele não tem um layout próprio para iPad.

Amazon Web Services, AWS, Amazon RDS e Amazon Aurora são marcas comerciais da Amazon.com, Inc. ou de suas afiliadas. O RowDeck não é afiliado à Amazon nem endossado por ela.

Guias

Guias para incidentes no MySQL.

Os problemas que acordam você de madrugada, uma página para cada um: o SQL para rodar à mão e o que o RowDeck mostra.

Os guias e o blog estão em inglês.

Do blog

Todos os posts

Tenha no celular antes do próximo incidente.

Adicione um servidor, fixe o certificado dele e mantenha todas as telas de monitoramento de graça. O Pro libera as ações para a noite em que você precisar delas.

Free Pro US$ 14,99 pagamento único MySQL 8.0+ e MariaDB 10.5+ iOS 17+ iPhone