~/.mysql_history サイズ制限

~/.mysql_history サイズ制限

私の.mysql_historyファイルサイズは300行に制限されています。

mysqlの記録を無制限に保ちたいです。ただし、これを行う方法が見つかりません(マンページとGoogle)。

誰かが.mysql_historyのサイズ制限をデフォルト300からそれ以上(または無制限)に増やす方法を提案できますか?

私はDebian Wheezyを使用しています

答え1

mysqlreadlineコマンドラインインターフェイスと書き込み処理に使用されます。

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ファイルに追加されます。)


編集する:

~/.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

これにより、サーバーで実行されるすべてのコマンドが履歴ファイルに保存されます。

複数行コマンドが単一の履歴行にあるので、完璧ではありません。 (ただし、必要に応じてこの問題も解決できます。)

関連情報