Comando SQL para exibir histórico de consultas


Respostas:


161

experimentar

 cat ~/.mysql_history

isso irá mostrar a você todos os comandos mysql executados no sistema


2
bem, não todos , a supressão ocorre para alguns que contêm strings como "senha".
mckenzm

1
Ele também não costuma estar atualizado com sua CLI MySQL aberta, portanto, é provável que você tenha que fazer o exitMySQL e ler o arquivo.
Joel Mellon

1
Isso mostra apenas os comandos executados pelo usuário que está conectado.
Christia

1
Como fazer isso no windows
ßiansor Å. Ålmerol

Existe a possibilidade de que outros comandos sejam suprimidos ou que estejam desordenados? E o log se atualiza em tempo real?
Drubio

32

Para MySQL> 5.1.11 ou MariaDB

  1. SET GLOBAL log_output = 'TABLE';
  2. SET GLOBAL general_log = 'ON';
  3. Dê uma olhada na mesa mysql.general_log

Se você deseja gerar um arquivo de log:

  1. SET GLOBAL log_output = "FILE";
  2. SET GLOBAL general_log_file = "/path/to/your/logfile.log"
  3. SET GLOBAL general_log = 'ON';

Conforme mencionado por jeffmjack nos comentários, essas configurações serão esquecidas antes da próxima sessão, a menos que você edite os arquivos de configuração (por exemplo /etc/mysql/my.cnf, edite e reinicie para aplicar as alterações).

Agora, se você quiser, pode tail -f /var/log/mysql/mysql.log

Mais informações aqui: Variáveis ​​de sistema do servidor


3
Apenas alguns esclarecimentos para o acima: Os comandos de copiar e colar aqui são para uma única sessão do MySQL, por exemplo, você pode inseri-los na linha de comando interativa do MySQL. Se você quiser que eles sejam um recurso permanente de sua instância do MySQL, você precisa colocar esses comandos em /etc/mysql/my.cnf e reiniciar o serviço MySQL.
jeffmjack

Observe também que o registro será interrompido se /path/to/your/logfile.logfor excluído, até que você execute SET GLOBAL general_log_file = "/path/to/your/logfile.log";novamente (ou talvez reinicie a sessão se você editou a configuração?).
Skippy le Grand Gourou

21

(Linux) Abra o seu Terminal e ctrl+alt+t execute o comando

 cat ~/.mysql_history

você obterá todo o histórico de consultas do mysql anterior, aproveite :)


18

Você vai encontrar lá

~/.mysql_history

Você o tornará legível (sem os escapes) assim:

sed "s/\\\040/ /g" < .mysql_history

2

Veja ~/.myslgui/query-browser/history.xml aqui você pode encontrar as últimas consultas feitas com mysql_query_browser (alguns dias atrás)



-1

Você pode olhar o cache de consulta: http://www.databasejournal.com/features/mysql/article.php/3110171/MySQLs-Query-Cache.htm, mas pode não lhe dar acesso às consultas reais e será muito acertar e errar se funcionou (trocadilho sutil intencional)

Mas o MySQL Query Browser muito provavelmente mantém sua própria lista de consultas que executa, fora do mecanismo do MySQL. Você teria que fazer o mesmo em seu aplicativo.

Edit: veja o comentário de dan m levando a isto: Como mostrar as últimas consultas executadas no MySQL? parece bom.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.