我的 .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
这会将服务器上执行的所有命令放入历史文件中。
它并不完美,因为多行命令现在位于单个历史记录行中(但也许您也可以解决这个问题,如果您需要的话)