Você pode armazenar o histórico de todos os comandos fornecidos no cliente MySQL, bem como seus resultados, em um arquivo, para uso posterior.
A dica é útil para programadores, que desejem montar scripts em PHP, Perl, Python etc. posteriormente, com o uso das informações obtidas em uma seção de conexão ao servidor do MySQL.
Ao usar o cliente MySQL, é possível ver o resultado imediato de seus comandos — o que te permite saber o que funciona ou não.
Se você está aprendendo MySQL, pode ser interessante ter uma relação de comandos referentes à sua lição — que pode ser enviado, por email ou qualquer outra forma, para ser analisado por alguém mais experiente e que possa te ajudar com alguma dificuldade.
Execute o MySQL com a opção –tee para gravar seu histórico
O MySQL, por padrão, já grava o histórico dos seus comandos. O que queremos é ter acesso a este histórico, de fora do MySQL — para ter a liberdade de fazer o que quisermos com esta informação.
Para isto, execute o MySQL com a opção --tee
, conforme o exemplo abaixo:
mysql -u root -p --tee=MySQL-historico.txt
Destrinchando o comando:
mysql -u root -p
— rotina tradicional de conexão ao banco de dados.--tee=MySQL-historico.txt
— indica ao tee para enviar a saída (log) para o arquivoMySQL-historico.txt
. Você pode usar qualquer outro nome que quiser para este artigo.
O log gerado pelo tee descarta uma série de lixo desnecessário, deixando apenas o que interessa gravado no arquivo.
No Unix (e também no Linux), o comando
tee
lê da entrada padrão e envia para uma saída à sua escolha — que pode ser um arquivo.
Como ligar o logging externo de dentro do MySQL
Se você se esqueceu de desligar o logging em um arquivo externo, é possível fazer isto de dentro do próprio MySQL.
Use os comandos \T
e \t
para ligar e desligar, respectivamente, o logging em arquivo externo.
No exemplo, abaixo, o logging será feito no arquivo hist.txt
:
mysql> \T hist.txt Logging to file 'hist.txt' mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | tutorial | +--------------------+ 4 rows in set (0.00 sec) mysql> \t Outfile disabled. mysql>
Para ver o log, na linha de comando (fora do cliente MySQL), eu posso usar o comando cat:
cat hist.txt
mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | tutorial | +--------------------+ 4 rows in set (0.00 sec) mysql> \t
Ou, então, posso abrir o arquivo hist.txt
com o meu editor favorito.
O MySQL acrescenta os novos logs aos já existentes. Ele não sobrescreve o log anterior.
Você precisa apagar o arquivo anterior ou criar um novo, se não quiser que o próximo log seja acrescentado a alguma preexistente.
A capacidade de criar arquivos tee, foi introduzida no MySQL 3.23.28.
One reply on “Como guardar o histórico dos comandos no MySQL”
Ele arquivo de historico só pega os registros que forem executados dentro do command shell do Mysql, eu como exemplo estou usando o Mysql WorkBench fiz varios inserts em uma tabela de teste e nao pegou nenhuma informação.