2010-02-24 8 views

risposta

1

Se l'istanza MySQL è attivata, è possibile visualizzare i registri. Questa sarebbe l'opzione migliore.

Se il sistema ha una cronologia attivata, è possibile avviare un client di backup dallo stesso sistema e provare la freccia su. Potresti essere in grado di vedere il comando lì.

Se si conosce l'utente che ha eseguito il comando e si è verificato eseguirlo direttamente da una riga di comando, lo stesso trucco storico potrebbe funzionare.

+0

http://dev.mysql.com/doc/refman/5.0/en/server-logs.html è un collegamento alle descrizioni di registrazione MySQL per l'amministrazione. – TheJacobTaylor

+0

grazie per la risposta, sto usando phpmyadmin ma non riesco a trovare alcuna opzione di cronologia o di registro. –

+0

Se hai bisogno dei dati, puoi chiedere all'amministratore del sistema di ottenere i registri delle query per te? Chiedi loro di trovare i comandi del tuo utente, con "alter", nel giorno specifico. Spero che possano aiutare. – TheJacobTaylor

4

Un piccolo chiarimento: show create table in realtà non "riporta indietro ciò che è stato precedentemente eseguito". Ti mostra solo il DDL che creerebbe il tavolo da zero. La tabella potrebbe essere stata creata e quindi modificata molte volte, ma show create table riflette lo stato corrente della tabella.

Come per trovare qualsiasi istruzione alter table eseguita di recente sulla tabella, la scelta migliore è il registro binario.

Prima di controllo per vedere se la registrazione binaria è abilitata:

show variable like 'log_bin'; 

Se lo è, trovare il log binario per il periodo in questione, utilizzare mysqlbinlog per convertirlo in SQL, quindi grep per il nome della tabella in questione per trovare la dichiarazione alter table che stai cercando.

1

Strumenti:

  • Maatkit.
  • MySQL Schema & dati di Red-Gate Confronta
  • Toad
  • SQLyog
  • MySQL Diff

manuale:

Prima di controllo per vedere se la registrazione binaria è abilitata:

show variable like 'log_bin'; 

Poi,

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

Vai a test.file a vedere le dichiarazioni alter.

Problemi correlati