Isso porque mysql
recria completamente o arquivo .mysql_history
durante sua execução.
Então, quando você executa cat ~/.mysql_history
após mysql
execução, está procurando um arquivo completamente diferente. Não é o que a tail
está lendo.
Você pode verificar isso facilmente com um teste simples:
$ ls -li .mysql_history
6685441 -rw------- 1 user user 1570 Sep 15 21:26 .mysql_history
$ mysql i_test
...
mysql> Bye
$ ls -li .mysql_history
6685474 -rw------- 1 user user 1592 Nov 29 20:27 .mysql_history
como você pode ver, o inode é diferente. Então essa é a resposta.