~/.mysql_history 大小限制

~/.mysql_history 大小限制

我的 .mysql_history 文件大小限制为 300 行。

我想保持 mysql 历史记录不受限制。但是,我找不到任何方法来做到这一点(在手册页和谷歌中)

有人可以建议如何将 .mysql_history 的大小限制从默认的 300 增加到更多(或无限制)

我正在使用 Debian Wheezy

答案1

mysql用于readline命令行界面和历史处理。

readline~/.inputrc在文件和/etc/inputrc系统范围内进行配置。

你可能有一个

set history-size 300

在那里的某个地方。只需删除该设置,或添加:

$if Mysql
set history-size -1
$endif

给你的~/.inputrc.

答案2

您可以在历史文件上启动 tail -F 并将输出通过管道传输到新文件中:

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

你将获得所有命令,(尽管文件每次都会增长很多:当你退出 mysql 控制台时,整个历史文件被添加到 ~/.mysql_complete_history 文件中)


编辑:

正确填写use~/.mysql_complete_history的准确输出~/.mysql_history这个脚本由斯蒂芬·查泽拉斯

答案3

不确定它是否适合你,但是man chattr 揭示有一个标志a代表“仅附加”,所以我会尝试一下。 ;)

答案4

如果您想查看您一直使用的所有查询,您可以启用通用日志变量(也可以看看如何启用MySQL查询日志?)。

请注意,这会导致大量 cpu 并减慢 mysql 的速度)

然后,您可以在每次进入控制台之前从该日志创建一个新的历史文件:

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

这会将服务器上执行的所有命令放入历史文件中。

它并不完美,因为多行命令现在位于单个历史记录行中(但也许您也可以解决这个问题,如果您需要的话)

相关内容