Czy istnieje sposób, aby wyświetlić poprzednie zapytania mysql za pomocą phpmyadmin?


112

Próbuję znaleźć błąd, który usuwa wiersze w mysqltabeli.

Przez całe życie nie mogę wyśledzić tego w moim PHPkodzie, więc chciałbym pracować wstecz, znajdując rzeczywiste zapytanie mysql, które usuwa wiersze.

Zalogowałem się do phpmyadmin, ale nie mogę znaleźć sposobu, aby wyświetlić historię poprzednich operacji sql.

Czy istnieje sposób, aby wyświetlić je w phpmyadmin?


2
Nie możesz przeszukiwać kodu pod kątem DELETEinstrukcji i debugować w ten sposób?
webbiedave

Posłuchaj baol i webbiedave. Powinieneś włączyć rejestrowanie zapytań, aby zobaczyć, co się dzieje, ale nadal musisz znaleźć w kodzie, skąd pochodzą instrukcje SQL. Zacznij grepping dla „usunąć”, nie może być , że wiele DELETE w projekcie.
joeynelson

tak, zacząłem od grepowania do usunięcia, ale moje oczy muszą być zamazane b / c żadne z usunięć nie wydaje się problematyczne ... dlatego mam nadzieję, że dziennik zapytań pomoże. dziękuję wam obojgu za pomoc.
chris1979

Sprawdź, czy w Twojej bazie danych nie ma żadnych wyzwalaczy, które mogą również spowodować usunięcie
Mark Baker,

Odpowiedzi:


108

Ok, więc właściwie natknąłem się na odpowiedź.

phpMyAdmin oferuje krótką historię. Jeśli klikniesz ikonę „sql” tuż pod logo „phpMyAdmin”, otworzy się nowe okno. W nowym oknie kliknij zakładkę „Historia”.

To da ci około dwudziestu ostatnich operacji SQL.

wprowadź opis obrazu tutaj


2
Możesz skonfigurować phpMyadmin, aby oszczędzał więcej. Mam swoją konfigurację, aby zapisać ostatnie 100000 zapytań.
Mixologic

ALE ... za każdym razem, gdy aktualizujesz (np. Ładujesz poprzednią wersję) swoją bazę danych tracisz historię (więc nie możesz ponownie zainstalować bazy danych, aby sprawdzić historię)
JinSnow

1
Nie rejestruje zmian indeksu i byłoby to dokładnie przydatne do tego celu, ponieważ nie rejestruje ich prawidłowo, kiedy je wykonujesz…
o0 '.

56
Nie widzę tej ikony SQL, gdzie jest w obecnej wersji?
Joseph Astrahan

3
@JosephAstrahan kliknij Query windowikonę obokHome
amallard

63

Na dole ekranu SQL (zapytania) znajduje się karta Konsola . Domyślnie nie jest rozwinięty, ale po kliknięciu powinien wyświetlić zakładki Opcje, Historia i Wyczyść. Kliknij historię.

Długość Historia zapytania jest ustawiony od wewnątrz Strona powiązanych ustawień , które znaleźć klikając na koła zębatego w prawym górnym rogu ekranu.

Jest to poprawne dla wersji PHP 4.5.1-1


6
Długość znajduje się teraz w sekcji Strona główna | Ustawienia | Zapytania SQL | Długość historii zapytań . I irytująco „Wartość musi być równa lub mniejsza niż 25!”
Bob Stein

38

Wystarczy kliknąć konsolę u dołu ekranu w phpMyAdmin, a otrzymasz historię wykonania:

wprowadź opis obrazu tutaj


Nie udało mi się znaleźć strony w zaakceptowanej odpowiedzi (może pochodzi z innej wersji) i to zadziałało, dzięki.
felwithe

4
Pokazuje tylko zapytania, które zostały uruchomione przez phpmyadminsamego użytkownika . Nie przedstawia pełnych zapisów wszystkich wykonanych zapytań.
Fusion

12

Aby wyświetlić poprzednie zapytania, po prostu uruchom to zapytanie w phpMyAdmin.

SELECT * FROM `general_log`

jeśli nie jest włączona, przed uruchomieniem uruchom następujące dwa zapytania.

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

7
bardzo przydatne dzięki. do kogokolwiek innego SELECT * FROM general_logmusi zostać zapytany w tabeli mysql, w przeciwnym razie musisz dołączyć tablename: SELECT * FROM mysql. general_log
siggi_pop

9

Nie sądzę, by phpMyAdmin na to pozwalał, ale chciałbym usłyszeć, że się mylę.

Z drugiej strony możesz włączyć rejestrowanie zapytań w MySQL: The General Query Log



7

Używam wersji serwera phpMyAdmin: 5.1.41.

Oferuje możliwość przeglądania historii sql poprzez phpmyadmin.pma_historytabelę.

Możesz wyszukać zapytanie w tej tabeli.

pma_history tabela ma poniższą strukturę:

wprowadź opis obrazu tutaj


3

Musisz kliknąć okno zapytania tuż pod logo phpMyAdmin, otworzy się nowe okno. Po prostu kliknij kartę Historia SQL. Tam możesz zobaczyć historię zapytań SQL.


2

Może się mylę, ale wydaje mi się, że widziałem listę poprzednich zapytań SQL w pliku sesji dla sesji phpmyadmin


Przepraszam ... Źle odczytałem twoje pytanie: lista w sesji to lista poprzednich instrukcji wydanych przez phpmyadmin, więc nie zawiera żadnych instrukcji SQL wydanych przez twoje własne skrypty PHP, więc prawdopodobnie nie jest to pomocne.
Mark Baker,

1

OK, więc wiem, że jestem trochę spóźniony, a niektóre z powyższych odpowiedzi to świetne rzeczy.

Jednak jako trochę więcej, na dowolnej stronie PHPMyAdmin:

  1. Kliknij kartę SQL
  2. Kliknij „Uzyskaj automatycznie zapisane zapytanie”

spowoduje to wyświetlenie ostatnio wprowadzonego zapytania.


0

możesz uruchomić swój poprzedni mysql za pomocą run /PATH_PAST_MYSQL/bin/mysqld.exe

uruchamia twój ostatni mysql i możesz go zobaczyć w phpmyadmin i innej sekcji twojego systemu.

uwaga: zatrzymaj swoją obecną wersję mysql.

SF Mój angielski.


0

dlaczego nie używasz eksportu, a następnie kliknij przycisk opcji „Niestandardowe - wyświetl wszystkie możliwe opcje”, a następnie wybierz bazę danych, a następnie przejdź do opcji Wyjście i wybierz opcję „Wyświetl wynik jako tekst”, po prostu przewiń w dół i Idź. Voila!


Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.