Есть ли способ просмотреть прошлые запросы mysql с помощью phpmyadmin?


113

Я пытаюсь отследить ошибку при удалении строк в mysqlтаблице.

На всю жизнь я не могу отследить это в своем PHPкоде, поэтому я хотел бы работать в обратном направлении, найдя фактический запрос mysql, который удаляет строки.

Я вошел в phpmyadmin, но не могу найти способ просмотреть историю прошлых операций sql.

Есть ли способ просмотреть их в phpmyadmin?


2
Разве вы не можете искать в коде DELETEоператоры и отлаживать их таким образом?
webbiedave

Слушайте баол и веббидаве. Вы должны включить ведение журнала запросов, чтобы увидеть, что происходит, но тогда вам все равно придется выяснить, откуда берутся операторы SQL в вашем коде. Начало для оглавлению «удалить», не может быть , что многие ВЕЬЕТЕ в вашем проекте.
joeynelson

да, я действительно начал с grepping для удаления, но мои глаза должны быть закрыты b / c, ни одно из удалений не кажется проблематичным ... вот почему я надеюсь, что журнал запросов поможет. спасибо вам обоим за вашу помощь.
chris1979

Проверьте, нет ли в вашей базе данных триггеров, которые также могут выполнять удаления
Марк Бейкер,

Ответы:


107

Хорошо, я действительно наткнулся на ответ.

phpMyAdmin предлагает краткую историю. Если вы нажмете на значок sql под логотипом phpMyAdmin, откроется новое окно. В новом окне просто щелкните вкладку «История».

Это даст вам последние двадцать или около того SQL-операций.

введите описание изображения здесь


2
Вы можете настроить phpMyadmin, чтобы сэкономить больше. У меня есть настройка для сохранения последних 100000 запросов.
Mixologic

НО ... каждый раз, когда вы обновляете (например, загружаете предыдущую версию) вашу базу данных, вы теряете свою историю (так что вы не можете переустановить базу данных, чтобы проверить ее историю)
JinSnow

1
Не регистрирует изменения индекса, и это было бы как раз полезно для этого, так как он не записывает их должным образом, когда вы их выполняете…
o0 '.

57
Я не вижу этого значка SQL, где он в текущей версии?
Джозеф Астрахан

3
@JosephAstrahan щелкните Query windowзначок рядом сHome
amallard

64

Внизу экрана SQL (запрос) находится вкладка Консоль . По умолчанию он не раскрывается, но при нажатии на него должны открываться вкладки для параметров, истории. и очистки. Щелкните историю.

Длина истории запросов устанавливается в настройках страницы, которые можно найти, щелкнув шестеренку в правом верхнем углу экрана.

Это верно для PHP версии 4.5.1-1.


6
Длина теперь находится в разделе Главная | Настройки | SQL-запросы | Длина истории запросов . И досадно: «Значение должно быть равно или меньше 25!»
Боб Штайн,

39

Вам просто нужно нажать на консоль внизу экрана в phpMyAdmin, и вы получите историю выполненных действий :

введите описание изображения здесь


Мне не удалось найти страницу в принятом ответе (возможно, это из другой версии), и у меня это сработало, спасибо.
felwithe

4
Это показывает только запросы, которые были запущены пользователем от phpmyadminсамого себя. Не отображаются полные записи обо всех выполненных запросах.
Fusion

12

Чтобы просмотреть прошлые запросы, просто запустите этот запрос в phpMyAdmin.

SELECT * FROM `general_log`

если он не включен, запустите следующие два запроса перед его запуском.

SET GLOBAL log_output = 'TABLE';
SET GLOBAL general_log = 'ON';

7
очень полезно спасибо. кому-либо еще SELECT * FROM general_logдолжен быть запрошен внутри таблицы mysql, иначе вы должны указать имя таблицы: SELECT * FROM mysql. general_log
siggi_pop

9

Я не думаю, что phpMyAdmin позволяет вам это сделать, но мне хотелось бы услышать, что я ошибаюсь.

С другой стороны, вы можете включить ведение журнала запросов в MySQL: Общий журнал запросов.



7

Я использую версию сервера phpMyAdmin: 5.1.41.

Он предлагает возможность просмотра истории sql через phpmyadmin.pma_historyтаблицу.

Вы можете искать свой запрос в этой таблице.

pma_history таблица имеет следующую структуру:

введите описание изображения здесь


3

Вам нужно нажать на окно запроса чуть ниже логотипа phpMyAdmin, откроется новое окно. Просто щелкните вкладку «История SQL». Здесь вы можете увидеть историю SQL-запросов.


2

Возможно, я ошибаюсь, но я считаю, что видел список предыдущих SQL-запросов в файле сеанса для сеансов phpmyadmin


Извинения ... Я неправильно понял ваш вопрос: список в сеансе - это список предыдущих операторов, выпущенных через phpmyadmin, поэтому он не содержит никаких операторов SQL, выпущенных вашими собственными сценариями PHP, поэтому, вероятно, не так полезен.
Mark Baker

1

Хорошо, поэтому я знаю, что немного опаздываю, и некоторые из приведенных выше ответов - отличные вещи.

Хотя немного больше, на любой странице PHPMyAdmin:

  1. Щелкните вкладку SQL
  2. Нажмите "Получить автоматически сохраненный запрос".

тогда это покажет ваш последний введенный запрос.


0

вы можете запустить свой прошлый mysql с помощью run /PATH_PAST_MYSQL/bin/mysqld.exe

он запускает ваш последний mysql, и вы можете увидеть его в phpmyadmin и другом разделе вашей системы.

примечание: остановите текущую версию mysql.

SF Мой английский.


0

почему бы вам не использовать экспорт, затем нажмите радиокнопку «Пользовательский - отобразить все возможные параметры», затем выберите свою базу данных, затем перейдите в «Вывод» и выберите «Просмотр вывода в виде текста», просто прокрутите вниз и перейдите. Вуаля!


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