Команда SQL для отображения истории запросов

112

Я хотел бы отобразить историю выполненных мной команд sql в моем браузере запросов MYSQL. Что такое оператор sql для отображения истории?

surya.in
источник
6
звучит как репост этого вопроса: stackoverflow.com/questions/650238/…
lazarus

Ответы:

161

пытаться

 cat ~/.mysql_history

это покажет вам все команды mysql, запущенные в системе

Майсам Тораби
источник
2
ну не все , подавление происходит для некоторых, содержащих строки вроде «пароль».
mckenzm
1
Он также обычно не обновляется с вашим открытым CLI MySQL, поэтому вам, вероятно, придется exitMySQL, а затем прочитать файл.
Джоэл Меллон
1
Здесь показаны только команды, выполняемые пользователем, который вошел в систему.
Christia
1
Как это сделать в windowsss
ßiansor Å. Ålmerol 02
Возможно ли, что другие команды подавлены или они неупорядочены? И обновляется ли журнал в реальном времени?
Друбио
32

Для MySQL> 5.1.11 или MariaDB

  1. SET GLOBAL log_output = 'TABLE';
  2. SET GLOBAL general_log = 'ON';
  3. Взгляните на таблицу mysql.general_log

Если вы хотите вывести в файл журнала:

  1. SET GLOBAL log_output = "FILE";
  2. SET GLOBAL general_log_file = "/path/to/your/logfile.log"
  3. SET GLOBAL general_log = 'ON';

Как упоминал jeffmjack в комментариях, эти настройки будут забыты до следующего сеанса, если вы не отредактируете файлы конфигурации (например, отредактируйте /etc/mysql/my.cnf, а затем перезапустите, чтобы применить изменения).

Теперь, если хочешь, можешь tail -f /var/log/mysql/mysql.log

Подробнее здесь: Системные переменные сервера

Г.Тодоров
источник
3
Небольшое пояснение к вышеизложенному: здесь команды копирования-вставки предназначены для одного сеанса MySQL, например, вы можете ввести их из интерактивной командной строки MySQL. Если вы хотите, чтобы они были постоянной функцией вашего экземпляра MySQL, вам необходимо поместить эти команды в /etc/mysql/my.cnf и перезапустить службу MySQL.
Jeffmjack
Также обратите внимание, что регистрация остановится, если /path/to/your/logfile.logбудет удалена, до тех пор, пока вы не выполните ее SET GLOBAL general_log_file = "/path/to/your/logfile.log";снова (или, возможно, перезапустите сеанс, если вы редактировали конфигурацию?).
Скиппи ле Гран Гуру
21

(Linux) Откройте свой терминал, ctrl+alt+t выполните команду

 cat ~/.mysql_history

вы получите всю предыдущую историю запросов mysql :)

Вамсидхар Муггулла
источник
19

Вы найдете это там

~/.mysql_history

Вы сделаете его читабельным (без экранирования) следующим образом:

sed "s/\\\040/ /g" < .mysql_history
ДимиДак
источник
2

Посмотрите ~/.myslgui/query-browser/history.xml здесь, вы можете найти последние запросы, сделанные с mysql_query_browser (несколько дней назад)

пользователь4493696
источник
0

Вы можете увидеть историю из ~ / .mysql_history. Однако содержимое файла закодировано с помощью wctomb. Для просмотра содержания:

оболочка> cat ~ / .mysql_history | python2.7 -c "import sys; print (''. join ([l.decode ('unicode-escape') для l в sys.stdin]))»

Источник: проверьте историю запросов MySQL из командной строки

GoYun.Info
источник
-1

Вы можете посмотреть кеш запросов: http://www.databasejournal.com/features/mysql/article.php/3110171/MySQLs-Query-Cache.htm, но он может не дать вам доступа к реальным запросам и будет очень попадание и промах, если это сработало (предполагается тонкий каламбур)

Но браузер запросов MySQL, скорее всего, поддерживает свой собственный список запросов, которые он выполняет, вне механизма MySQL. Вам придется сделать то же самое в своем приложении.

Изменить: см. Комментарий Дана М., ведущий к следующему: как показать последние запросы, выполненные в MySQL? выглядит здоровым.

Кирен Джонстон
источник