~/.mysql_history предел размера

Можно использовать regex в ударе (3.0 или выше) для выполнения этого:

if [[ $strname =~ 3(.+)r ]]; then
    strresult=${BASH_REMATCH[1]}
else
    echo "unable to parse string $strname"
fi

В ударе группы получения от regex размещаются в специальный массив BASH_REMATCH. Элемент 0 содержит все соответствие, и 1 содержит соответствие для первой группы получения.

4
06.11.2013, 13:21
4 ответа

mysql использование readline для интерфейса командной строки и для обработки истории.

readline настроен в ~/.inputrc файл и в /etc/inputrc в масштабе всей системы.

У Вас, вероятно, есть a

set history-size 300

где-нибудь там. Просто удалите ту установку или добавьте a:

$if Mysql
set history-size -1
$endif

к Вашему ~/.inputrc.

4
27.01.2020, 20:51
  • 1
    , к сожалению, это, кажется, не имеет эффекта. Мой .mysql_history имеет все еще точно 300 строк –  Martin Vegter 03.12.2013, 17:17
  • 2
    @MartinVegter, делает mysql считайте Ваш ~/.inputrc? Подтвердите с strace -fe open mysql .... Что находится в Вашем ~/.inputrc теперь (и прежде)? Что делает env | grep MYSQL вернуть? –  Stéphane Chazelas 03.12.2013, 17:38
  • 3
    Вы правы. Это работает теперь. Это не работало прежде, потому что mysql был псевдоним к alias mysql='/usr/bin/rlwrap -a -pRED /usr/bin/mysql'. Когда я отключаю псевдоним, он работает. Шанс использовать Ваш прием с моим активным псевдонимом? (Я пытался использовать $if rlwrap в моем .inputrc, но это, кажется, не работает), –  Martin Vegter 04.12.2013, 10:09
  • 4
    @MartinVegter, использовать rlwrap -s 99999999, см. rlwrap страницу справочника. Это - rlwrap, который накладывает то ограничение на 300, можно забыть об изменениях в ~/.inputrc. –  Stéphane Chazelas 04.12.2013, 10:43
  • 5
    @StéphaneChazelas: добавьте эту информацию в своем ответе. –  Skippy le Grand Gourou 22.09.2015, 14:18

Можно запустить хвост-F на файле истории и передать вывод по каналу в новый файл:

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

Вы получите все команды, (хотя файл вырастет довольно много каждого раза: целый файл истории добавляется к ~/.mysql_complete_history время файла, Вы выходите из mysql консоли),


Править:

Правильно заполниться ~/.mysql_complete_history с точным выводом ~/.mysql_history используйте этот сценарий Stephane Chazelas

2
27.01.2020, 20:51
  • 1
    Это очень умно.Спасибо. Но к сожалению, это не очень практично. –  Martin Vegter 29.11.2013, 22:03

Не уверенный, работало ли это на Вас, но man chattr показывает, что существует флаг a который обозначает, "добавляют только", таким образом, я дал бы ему попытку и видел бы.;)

1
27.01.2020, 20:51
  • 1
    Спасибо за умное предложение. Однако это не будет работать на меня, поскольку я не имею EXT4_FS_XATTR поддержка в моем ядре. –  Martin Vegter 07.11.2013, 13:08
  • 2
    @MartinVegter, у Вас есть какой-либо другой FS_XATTR? –  poige 07.11.2013, 15:28
  • 3
    не, у меня нет расширенной поддержки атрибутов во всем –  Martin Vegter 07.11.2013, 15:36
  • 4
    @MartinVegter, то, что некоторое сделанное на заказ ядро? Обычная конфигурация включает xattr поддержка даже tmpfs. А-ч –  poige 07.11.2013, 15:38
  • 5
    да, это - сделанное на заказ ядро –  Martin Vegter 07.11.2013, 16:07

Если Вы хотите видеть все запросы, которые Вы использовали во все время, которое можно включить переменной общего журнала (см. также, Как включить MySQL Query Log?).

Знайте, что это вызовет много CPU и замедлит mysql),

Вы могли затем создать новый файл истории из того журнала каждый раз перед вводом консоли

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

это поместит все команды, которые выполняются на Вашем сервере в Вашем файле истории.

Это не прекрасно, команды причины, которые были по нескольким строкам, находятся в единственной строке истории теперь (но возможно можно зафиксировать это также при необходимости в нем),

0
27.01.2020, 20:51
  • 1
    , Это не работало бы, к сожалению. Я не соединяюсь с базой данных с mysql сервера, скорее я соединяюсь от другой машины. Поэтому у меня нет доступа к входу в систему сервером. –  Martin Vegter 29.11.2013, 23:36
  • 2
    Если у Вас есть ssh доступ, Вы могли кошка файл журнала на другой машине через ssh в Ваш локальный файл –  rubo77 30.11.2013, 01:43

Теги

Похожие вопросы