2010-02-24 10 views

Antwort

1

Wenn Ihre MySQL-Instanz aktiviert ist, können Sie die Protokolle anzeigen. Dies wäre die beste Option.

Wenn in Ihrem System die Historie aktiviert ist, können Sie eine Client-Sicherung vom selben System aus starten und den Pfeil nach oben verwenden. Möglicherweise können Sie den Befehl dort sehen.

Wenn Sie den Benutzer kennen, der den Befehl ausgeführt hat und den Befehl direkt über eine Befehlszeile ausgeführt hat, funktioniert möglicherweise derselbe Verlaufstrick.

+0

http://dev.mysql.com/doc/refman/5.0/en/server-logs.html ist eine Verknüpfung zu Beschreibungen der MySQL-Protokollierung für die Verwaltung. – TheJacobTaylor

+0

danke für die Antwort, ich benutze phpmyadmin, aber ich kann nicht scheinen, irgendwelche Geschichte oder Protokolloption zu finden. –

+0

Wenn Sie die Daten benötigen, können Sie den Administrator des Systems bitten, die Abfrageprotokolle für Sie abzurufen? Lassen Sie sie am jeweiligen Tag Befehle von Ihrem Benutzer mit "alter" finden. Hoffentlich können sie helfen. – TheJacobTaylor

4

Eine kleine Klarstellung: show create table führt eigentlich nicht "zurück, was vorher ausgeführt wurde". Es zeigt Ihnen nur die DDL, die die Tabelle von Grund auf neu erstellen würde. Die Tabelle wurde möglicherweise erstellt und dann mehrmals geändert, aber show create table spiegelt den aktuellen Status der Tabelle wider.

Wie für alle alter table Aussagen zu finden, die vor kurzem auf dem Tisch lief, ist die beste Wette das binäre Protokoll.

Prüfen Sie zuerst, ob binäre Protokollierung aktiviert ist:

show variable like 'log_bin'; 

Wenn es ist, das binäre Protokoll für den betreffenden Zeitraum finden, verwenden mysqlbinlog es zu SQL zu konvertieren, dann grep für die jeweiligen Tabellennamen Finden Sie die alter table Aussage, die Sie suchen.

1

Werkzeuge:

  • Maatkit.
  • Red-Tor MySQL Schema & Daten vergleichen
  • Toad
  • SQLYog
  • MySQL Diff

Handbuch:

Prüfen Sie zuerst, ob binäre Protokollierung aktiviert ist:

show variable like 'log_bin'; 
Dann 0

,

mysqlbinlog /var/log/mysql/mysql-bin.000001 | grep 'alter table *tablename*' > test.file 

Zum test.file die alten Aussagen zu sehen.

Verwandte Themen