Existe uma maneira de visualizar consultas anteriores do mysql com phpmyadmin?

111

Estou tentando rastrear um bug que está excluindo linhas em uma mysqltabela.

Por mais que eu não consiga rastreá-lo em meu PHPcódigo, então gostaria de voltar atrás, encontrando a consulta real do mysql que está removendo as linhas.

Eu loguei no phpmyadmin, mas não consigo encontrar uma maneira de ver o histórico de operações anteriores do sql.

Existe uma maneira de visualizá-los no phpmyadmin?

chris1979
fonte
2
Você não pode pesquisar DELETEdeclarações em seu código e depurar dessa forma?
webbiedave
Ouça baol e webbiedave. Você deve habilitar o log de consulta para ver o que está acontecendo, mas então você ainda tem que descobrir de onde as instruções SQL estão vindo em seu código. Comece grepping para "excluir", não pode ser que muitas instruções DELETE em seu projeto.
joeynelson
sim, eu realmente comecei por grep para deletar, mas meus olhos devem estar encobertos b / c nenhum dos deletes parece problemático ... é por isso que eu espero que o log de consulta ajude. obrigado a vocês dois por sua ajuda.
chris1979
Verifique se há gatilhos em seu banco de dados que também podem fazer as exclusões
Mark Baker

Respostas:

107

Ok, então eu realmente tropecei na resposta.

phpMyAdmin oferece uma breve história. Se você clicar no ícone 'sql' logo abaixo do logotipo 'phpMyAdmin', uma nova janela será aberta. Na nova janela, basta clicar na guia 'histórico'.

Isso lhe dará as últimas vinte ou mais operações SQL.

insira a descrição da imagem aqui

chris1979
fonte
2
Você pode configurar o phpMyadmin para economizar mais. Eu tenho minha configuração para salvar as últimas 100.000 consultas.
Mixologic
MAS ... cada vez que você atualiza (por exemplo: carregar uma versão anterior) seu banco de dados, você perde seu histórico (portanto, você não pode reinstalar um banco de dados para verificar seu histórico)
JinSnow
1
Não registra alterações de índice, e seria exatamente útil para isso, já que também não os registra corretamente quando você os executa ...
o0 '.
56
Não vejo este ícone SQL, onde está na versão atual?
Joseph Astrahan
3
@JosephAstrahan clique no Query windowícone ao lado deHome
amallard
63

Há uma guia Console na parte inferior da tela SQL (consulta). Por padrão, ele não é expandido, mas uma vez clicado nele deve expor as guias de Opções, Histórico e Limpar. Clique na história.

O comprimento do histórico de consultas é definido nas Configurações relacionadas à página, encontradas clicando na roda dentada no canto superior direito da tela.

Isso é correto para PHP versão 4.5.1-1

alleyoopster
fonte
6
Comprimento está agora em Página inicial | Configurações | Consultas SQL | Comprimento do histórico de consultas . E irritantemente "O valor deve ser igual ou inferior a 25!"
Bob Stein
37

Você só precisa clicar no console na parte inferior da tela no phpMyAdmin e você obterá o histórico de execução:

insira a descrição da imagem aqui

Samarth Saxena
fonte
Não consegui encontrar a página na resposta aceita (talvez seja de uma versão diferente) e funcionou para mim, obrigado.
felwithe
4
Isso mostra apenas consultas que foram executadas pelo phpmyadminpróprio usuário . Não mostra os registros completos de todas as consultas realizadas.
Fusion
11

Para visualizar as consultas anteriores, basta executar esta consulta no phpMyAdmin.

SELECT * FROM `general_log`

se não estiver habilitado, execute as duas consultas a seguir antes de executá-lo.

SET GLOBAL log_output = 'TABLE';
SET GLOBAL general_log = 'ON';
Waqas Bukhary
fonte
6
muito útil, obrigado. para qualquer outra pessoa SELECT * FROM general_logdeve ser consultado dentro da tabela mysql, caso contrário, você deve incluir tablename: SELECT * FROM mysql. general_log
siggi_pop
9

Não acho que o phpMyAdmin permite que você faça isso, mas gostaria de ouvir que estou errado.

Por outro lado, você pode habilitar o registro de consultas no MySQL: The General Query Log

baol
fonte
7

Sim, você pode registrar consultas em uma tabela especial do banco de dados phpMyAdmin.

Veja SQL_history .

azulado
fonte
Isso complementa a resposta dada acima por @Dhinakar.
Meetai.com
5

Estou usando a versão do servidor phpMyAdmin: 5.1.41.

Oferece a possibilidade de ver o histórico sql através da phpmyadmin.pma_historytabela.

Você pode pesquisar sua consulta nesta tabela.

pma_history a tabela tem a estrutura abaixo:

insira a descrição da imagem aqui

Dhinakar
fonte
3

Você deve clicar na janela de consulta logo abaixo do logotipo do phpMyAdmin, uma nova janela será aberta. Basta clicar na guia Histórico do SQL. Lá você pode ver o histórico de consultas SQL.

Anurag Prashant
fonte
2

Posso estar errado, mas acredito ter visto uma lista de consultas SQL anteriores no arquivo de sessão para sessões do phpmyadmin

Mark Baker
fonte
Desculpas ... Eu interpretei mal sua pergunta: a lista na sessão é a lista de instruções anteriores emitidas por meio do phpmyadmin, portanto, não contém nenhuma instrução SQL emitida por seus próprios scripts PHP, então provavelmente não é muito útil.
Mark Baker
1

OK, então eu sei que estou um pouco atrasado e algumas das respostas acima são ótimas.

Porém, como um pequeno extra, enquanto estiver em qualquer página do PHPMyAdmin:

  1. Clique na guia SQL
  2. Clique em 'Obter consulta salva automaticamente'

isso mostrará sua última consulta inserida.

Jackherer
fonte
0

você pode executar seu mysql anterior com run /PATH_PAST_MYSQL/bin/mysqld.exe

ele executa seu último mysql e você pode vê-lo no phpmyadmin e em outra seção do seu sistema.

aviso: pare sua versão atual do mysql.

SF My English.

Omid Ahmadyani
fonte
0

por que você não usa exportar, clique no botão 'Personalizar - exibir todas as opções possíveis', escolha seu banco de dados, vá para Saída e escolha 'Exibir saída como texto' apenas role para baixo e vá. Voila!

Nome em Exibição
fonte