{{ tituloSecao }}
Comece pela conexão
Informe o servidor MySQL, o banco e o usuário. Depois instale as tabelas e migre os dados.
Saúde do banco
Resultado do último diagnóstico.
Conexão com o MySQL / MariaDB
Banco próprio do clube (não é o banco do i9). A senha fica só no servidor, em banco/config_banco.php, que o navegador não acessa.
Salva em {{ dataHora(estado.config.salvo_em) }} por {{ estado.config.salvo_por }}.
Dicas
- XAMPP: host localhost, porta 3306, usuário root sem senha (troque isso em produção).
- Hospedagem (Locaweb e outras): use o host, o banco e o usuário que o painel da hospedagem informa.
- O usuário precisa do privilégio TRIGGER para a auditoria. O diagnóstico confere.
Diagnóstico completo
Servidor, conexão, esquema, permissões, auditoria, integridade e JSON × banco.
Instalação e migração dos JSON para o banco
O clube continua funcionando pelos arquivos JSON até a troca para o banco. A migração só copia; os JSON não são alterados.
Resultado
Histórico de migrações
| # | Modo | Situação | Início | Fim | Responsável | Usuário do banco | Registros | |
|---|---|---|---|---|---|---|---|---|
| {{ m.ID_MIGRACAO }} | {{ m.MODO == 2 ? 'real' : 'simulação' }} | {{ rotMig[m.SITUACAO] }} | {{ dataHora(m.DTHR_INICIO) }} | {{ dataHora(m.DTHR_FIM) }} | {{ m.RESPONSAVEL }} | {{ m.USUARIO_DB }} | {{ resumoItens(m.ITENS) }} |
{{ tab.nome }}
{{ tab.descricao }}
| {{ c.COLUMN_NAME }}{{ tab.dir === 'asc' ? ' ▲' : ' ▼' }} |
|---|
| {{ l[c.COLUMN_NAME] === null ? 'NULL' : l[c.COLUMN_NAME] }} |
| Nenhum registro. |
| Coluna | Tipo | Nulo | Chave | Padrão | Extra | Descrição |
|---|---|---|---|---|---|---|
| {{ c.COLUMN_NAME }} | {{ c.COLUMN_TYPE }} | {{ c.IS_NULLABLE === 'YES' ? 'sim' : 'não' }} | {{ {PRI: 'PK', UNI: 'UK', MUL: 'IDX'}[c.COLUMN_KEY] || c.COLUMN_KEY }} | {{ c.COLUMN_DEFAULT }} | {{ c.EXTRA }} | {{ c.COLUMN_COMMENT }} |
| {{ x.INDEX_NAME }} | {{ x.INDEX_NAME === 'PRIMARY' ? 'PK' : (+x.NON_UNIQUE ? 'IDX' : 'UK') }} | {{ x.colunas }} |
| {{ f.COLUMN_NAME }} | → {{ f.REFERENCED_TABLE_NAME }}.{{ f.REFERENCED_COLUMN_NAME }} | ao apagar: {{ f.DELETE_RULE }} · ao alterar: {{ f.UPDATE_RULE }} |
Consulta SQL (somente leitura)
SELECT, SHOW, DESCRIBE e EXPLAIN, numa transação só de leitura, com até {{ fmtNum(1000) }} linhas na tela. Cada consulta fica registrada.
| {{ c }} |
|---|
| {{ l[c] === null ? 'NULL' : l[c] }} |
Trilha de auditoria
Toda inclusão, alteração e exclusão nas tabelas do clube, gravada pelos triggers do próprio banco: quem, quando, de onde e o antes/depois.
| # | Quando | Ação | Tabela | Registro | Usuário | Origem | IP | Motivo | Campos alterados |
|---|---|---|---|---|---|---|---|---|---|
| {{ r.ID_AUDITORIA }} | {{ dataHora(r.DTHR) }} | {{ { 1: 'Inclusão', 2: 'Alteração', 3: 'Exclusão' }[r.ACAO] }} | {{ r.TABELA.replace('clube_', '') }} | {{ r.ID_REGISTRO }} | {{ r.USUARIO || '—' }} {{ r.USUARIO_DB }} |
{{ r.ORIGEM || 'direto no banco' }} migração #{{ r.ID_MIGRACAO }} |
{{ r.IP }} | {{ r.MOTIVO }} | {{ camposMudados(r).join(', ') }} |
| |||||||||
| Nenhum registro com esses filtros. | |||||||||
| Quando | Usuário | IP | Ação | Alvo | Resultado | Linhas | ms | Mensagem / detalhe |
|---|---|---|---|---|---|---|---|---|
| {{ dataHora(l.DTHR) }} | {{ l.USUARIO }} | {{ l.IP }} | {{ l.ACAO }} | {{ l.ALVO }} | {{ { 1: 'sucesso', 2: 'erro', 3: 'negado' }[l.RESULTADO] }} | {{ l.LINHAS }} | {{ l.DURACAO_MS }} | {{ l.MENSAGEM }} {{ l.DETALHE }} |
| Nada registrado com esses filtros. | ||||||||
| Quando | Método | Rota | HTTP | Erro | Loja | Conexão | IP | ms | Requisição | Resposta |
|---|---|---|---|---|---|---|---|---|---|---|
| {{ dataHora(l.DTHR) }} | {{ l.METODO }} | {{ l.ROTA }} | {{ l.STATUS_HTTP }} | {{ l.COD_ERRO }} | {{ l.ID_LOJA }} | {{ l.ID_CONEXAO }} | {{ l.IP }} | {{ l.DURACAO_MS }} | {{ l.REQUISICAO_JSON }} | {{ l.RESPOSTA_JSON }} |
| Nenhuma chamada da API registrada (a API pública ainda não está no ar). | ||||||||||
{{ logs.obsArquivos }}
Backup completo
Arquivo .sql com estrutura, dados e triggers, para guardar ou restaurar em outro servidor.
Verificar integridade
Créditos x resgates, resgates sem origem, créditos vencidos em aberto, cadastros incompletos.
Recriar triggers de auditoria
Recria os {{ estado.esperado.triggers.length }} triggers a partir do arquivo oficial. Use se o diagnóstico apontar falta.
Atualizar estatísticas
ANALYZE TABLE em todas as tabelas: ajuda o MySQL a escolher os índices certos. Rápido e seguro.
Otimizar tabelas
OPTIMIZE TABLE: reorganiza e libera espaço. Pode deixar o banco lento por alguns segundos; prefira fora do horário de pico.
Limpar dados temporários
Tentativas de login com mais de 1 dia e chamadas antigas da API. A auditoria nunca é apagada.
Zerar clientes e movimentos
Recomeça os clientes mantendo as lojas e o catálogo: apaga membros, saldos, carteiras ligadas, pedidos da vitrine e compras do caixa. Ficam lojas, regras, usuários, chaves da API, produtos com fotos, categorias, subcategorias e % de cashback. Faz backup antes.
Zerar os dados do clube
Para recomeçar do zero (testes, implantação): apaga lojas, membros, saldos, carteiras, catálogo, pedidos, assinaturas, parceiros e contratos. Mantém planos, configuração e superadmins. Faz backup antes.
Relatório de suporte
Diagnóstico, últimas migrações e erros recentes num texto para copiar e enviar ao suporte.
{{ manRes.titulo }}
{{ manRes.msg }}
| {{ k }} |
|---|
| {{ x }} |
| {{ s.tabela }} | {{ s.tipo }} | {{ s.msg }} |