Gibt es eine Möglichkeit, vergangene MySQL-Abfragen mit phpmyadmin anzuzeigen?

111

Ich versuche, einen Fehler aufzuspüren, der Zeilen in einer mysqlTabelle löscht .

Für mein Leben kann ich es nicht in meinem PHPCode finden, daher möchte ich rückwärts arbeiten, indem ich die eigentliche MySQL-Abfrage finde, die die Zeilen entfernt.

Ich habe mich bei phpmyadmin angemeldet, kann aber keine Möglichkeit finden, den Verlauf vergangener SQL-Vorgänge anzuzeigen.

Gibt es eine Möglichkeit, sie in phpmyadmin anzuzeigen?

chris1979
quelle
2
Können Sie Ihren Code nicht nach DELETEAnweisungen durchsuchen und auf diese Weise debuggen?
Webbiedave
Hören Sie Baol und Webbiedave. Sie sollten die Abfrageprotokollierung aktivieren, um zu sehen, was los ist. Dann müssen Sie jedoch noch herausfinden, woher die SQL-Anweisungen in Ihrem Code stammen. Starten Sie greppen für „löschen“, kann es nicht sein , dass viele Delete - Anweisungen in Ihrem Projekt.
Joeynelson
Ja, ich habe tatsächlich damit begonnen, nach Löschen zu suchen, aber meine Augen müssen beschönigt sein. Keines der Löschvorgänge scheint problematisch zu sein. Deshalb hoffe ich, dass das Abfrageprotokoll hilft. Vielen Dank an Sie beide für Ihre Hilfe.
chris1979
Suchen Sie in Ihrer Datenbank nach Triggern, die möglicherweise auch die Löschvorgänge
Mark Baker,
Mögliches Duplikat von Wo finde ich MySQL-Protokolle in phpmyadmin?
Outis

Antworten:

107

Ok, also bin ich tatsächlich über die Antwort gestolpert.

phpMyAdmin bietet eine kurze Geschichte. Wenn Sie auf das 'SQL'-Symbol direkt unter dem' phpMyAdmin'-Logo klicken, wird ein neues Fenster geöffnet. Klicken Sie im neuen Fenster einfach auf die Registerkarte "Verlauf".

Damit erhalten Sie die letzten zwanzig SQL-Operationen.

Geben Sie hier die Bildbeschreibung ein

chris1979
quelle
2
Sie können phpMyadmin konfigurieren, um mehr zu speichern. Ich habe mein Setup, um die letzten 100000 Abfragen zu speichern.
Mixologic
ABER ... jedes Mal, wenn Sie Ihre Datenbank aktualisieren (z. B. eine frühere Version laden), verlieren Sie Ihren Verlauf (sodass Sie eine Datenbank nicht erneut installieren können, um den Verlauf zu überprüfen)
JinSnow
1
Protokolliert keine Indexänderungen, und es wäre genau das Richtige für dieses Ding, da es sie nicht richtig protokolliert, wenn Sie sie ausführen ...
o0 '.
56
Ich sehe dieses SQL-Symbol nicht. Wo befindet es sich in der aktuellen Version?
Joseph Astrahan
3
@ JosephAstrahan klicken Sie auf das Query windowSymbol nebenHome
amallard
63

Am unteren Rand des SQL- Bildschirms (Abfrage) befindet sich eine Registerkarte " Konsole" . Standardmäßig wird es nicht erweitert, aber wenn Sie darauf klicken, sollten Registerkarten für Optionen, Verlauf und Löschen angezeigt werden . Klicken Sie auf Verlauf.

Die Geschichte Abfragelänge von innen gesetzt Seite Verwandte Einstellungen , die durch einen Klick auf das Zahnrad am rechten oberen Rand des Bildschirms.

Dies ist korrekt für PHP Version 4.5.1-1

Alleyoopster
quelle
6
Länge ist jetzt unter Home | Einstellungen | SQL-Abfragen | Länge des Abfrageverlaufs . Und verrückt "Wert muss gleich oder niedriger als 25 sein!"
Bob Stein
37

Sie müssen nur in phpMyAdmin auf die Konsole am unteren Bildschirmrand klicken und Sie erhalten den ausgeführten Verlauf:

Geben Sie hier die Bildbeschreibung ein

Samarth Saxena
quelle
Ich konnte die Seite in der akzeptierten Antwort nicht finden (möglicherweise stammt sie aus einer anderen Version), und das hat bei mir funktioniert, danke.
Felwithe
4
Dies zeigt nur Abfragen an, die vom Benutzer phpmyadminselbst ausgeführt wurden. Es werden nicht vollständige Aufzeichnungen aller durchgeführten Abfragen angezeigt.
Fusion
10

Um die letzten Abfragen anzuzeigen, führen Sie diese Abfrage einfach in phpMyAdmin aus.

SELECT * FROM `general_log`

Wenn es nicht aktiviert ist, führen Sie die folgenden zwei Abfragen aus, bevor Sie es ausführen.

SET GLOBAL log_output = 'TABLE';
SET GLOBAL general_log = 'ON';
Waqas Bukhary
quelle
6
sehr nützlich danke. an alle anderen SELECT * FROM general_logmuss in der MySQL-Tabelle abgefragt werden, andernfalls müssen Sie den Tabellennamen angeben: SELECT * FROM MySQL. general_log
siggi_pop
9

Ich glaube nicht, dass Sie mit phpMyAdmin das tun können, aber ich würde gerne hören, dass ich falsch liege.

Andererseits können Sie die Abfrageprotokollierung in MySQL aktivieren: Das allgemeine Abfrageprotokoll

baol
quelle
7

Ja, Sie können Abfragen in einer speziellen phpMyAdmin-DB-Tabelle protokollieren.

Siehe SQL_history .

blau gefärbt
quelle
Dies ergänzt die oben von @Dhinakar gegebene Antwort.
Meetai.com
5

Ich verwende phpMyAdmin Server Version: 5.1.41.

Es bietet die Möglichkeit, den SQL-Verlauf über eine phpmyadmin.pma_historyTabelle anzuzeigen .

Sie können Ihre Anfrage in dieser Tabelle durchsuchen.

pma_history Tabelle hat folgende Struktur:

Geben Sie hier die Bildbeschreibung ein

Dhinakar
quelle
3

Sie müssen auf das Abfragefenster direkt unter dem phpMyAdmin-Logo klicken. Ein neues Fenster wird geöffnet. Klicken Sie einfach auf die Registerkarte SQL-Verlauf. Dort können Sie den Verlauf von SQL-Abfragen anzeigen.

Anurag Prashant
quelle
2

Ich kann mich irren, aber ich glaube, ich habe eine Liste früherer SQL-Abfragen in der Sitzungsdatei für phpmyadmin-Sitzungen gesehen

Mark Baker
quelle
Entschuldigung ... Ich würde Ihre Frage falsch verstehen: Die Liste in der Sitzung ist die Liste der vorherigen Anweisungen, die über phpmyadmin ausgegeben wurden. Sie enthält also keine SQL-Anweisungen, die von Ihren eigenen PHP-Skripten ausgegeben wurden, also wahrscheinlich nicht so hilfreich.
Mark Baker
1

OK, ich weiß, dass ich etwas spät dran bin und einige der oben genannten Antworten sind großartige Dinge.

Als kleines Extra auf jeder PHPMyAdmin-Seite:

  1. Klicken Sie auf die Registerkarte SQL
  2. Klicken Sie auf "Automatisch gespeicherte Abfrage abrufen".

Daraufhin wird Ihre zuletzt eingegebene Abfrage angezeigt.

Jackherer
quelle
0

Sie können Ihre vergangene MySQL mit run /PATH_PAST_MYSQL/bin/mysqld.exe ausführen

Es führt Ihr letztes MySQL aus und Sie können es in phpmyadmin und anderen Abschnitten Ihres Systems sehen.

Hinweis: Stoppen Sie Ihre aktuelle MySQL-Version.

SF Mein Englisch.

Omid Ahmadyani
quelle
0

Warum verwenden Sie den Export nicht? Klicken Sie dann auf das Optionsfeld "Benutzerdefiniert - Alle möglichen Optionen anzeigen", wählen Sie dann Ihre Datenbank aus, gehen Sie zu "Ausgabe" und wählen Sie "Ausgabe als Text anzeigen". Scrollen Sie einfach nach unten und gehen Sie. Voila!

Anzeigename
quelle