~ / .mysql_history size limit

4

Meu tamanho de arquivo .mysql_history é limitado a 300 linhas.

Eu gostaria de manter o histórico do mysql ilimitado. No entanto, não encontrei nenhuma maneira de fazer isso (na página man e no google)

Alguém pode, por favor, informar como aumentar o limite de tamanho de .mysql_history do padrão 300 para mais (ou ilimitado)

Estou usando o Debian Wheezy

    
por Martin Vegter 06.11.2013 / 12:21

4 respostas

4

mysql usa readline para a interface da linha de comando e para o tratamento do histórico.

readline está configurado no arquivo ~/.inputrc e em /etc/inputrc system-wide.

Você provavelmente tem um

set history-size 300

em algum lugar lá. Basta remover essa configuração ou adicionar um:

$if Mysql
set history-size -1
$endif

para o seu ~/.inputrc .

    
por 03.12.2013 / 15:05
2

Você pode iniciar uma cauda -F no arquivo de histórico e canalizar a saída em um novo arquivo:

tail -F ~/.mysql_history >> ~/.mysql_complete_history

você obterá todos os comandos (embora o arquivo cresça bastante a cada vez: todo o arquivo de histórico é adicionado à hora do arquivo ~ / .mysql_complete_history que você encerrou no console mysql)

EDITAR:

Para preencher corretamente ~/.mysql_complete_history com a saída exata de ~/.mysql_history use este script por > Stephane Chazelas

    
por 29.11.2013 / 20:03
1

Não tenho certeza se isso funcionaria para você, mas man chattr revela que há uma sinalização a , que significa "apenas append", então experimente e veja. ;)

    
por 06.11.2013 / 17:22
0

Se você quiser ver todas as consultas que você usou o tempo todo, você pode ativar o variável de log geral (veja também Como habilitar a consulta MySQL Log? ).

Esteja ciente de que isso causará muita CPU e desacelerará o mysql)

Você pode criar um novo arquivo de histórico a partir desse registro toda vez que entrar no console por

cat /var/lib/mysql/yourhost.log | cut -f4-99|while read i; do echo $i\;; done | > ~/.mysql_history

isto irá colocar todos os comandos que são executados no seu servidor no seu arquivo histórico.

Não é perfeito, porque os comandos que estavam acima de várias linhas estão em uma única linha do histórico agora (mas talvez você possa consertar isso também, se precisar)

    
por 29.11.2013 / 22:05

Tags