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


112

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


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 (несколько дней назад)


0

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

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

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


-1

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

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

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.