C'è un modo per visualizzare le query mysql passate con phpmyadmin?


112

Sto cercando di rintracciare un bug che sta eliminando le righe in una mysqltabella.

Per tutta la vita non riesco a rintracciarlo nel mio PHPcodice, quindi mi piacerebbe lavorare a ritroso trovando la query mysql effettiva che rimuove le righe.

Ho effettuato l'accesso a phpmyadmin, ma non riesco a trovare un modo per visualizzare la cronologia delle operazioni SQL passate.

C'è un modo per visualizzarli in phpmyadmin?


2
Non puoi cercare le DELETEistruzioni nel tuo codice ed eseguire il debug in questo modo?
webbiedave

Ascolta baol e webbiedave. Dovresti abilitare la registrazione delle query per vedere cosa sta succedendo, ma devi ancora trovare da dove provengono le istruzioni SQL nel tuo codice. Inizia a cercare "cancella", non ci possono essere così tante istruzioni di cancellazione nel tuo progetto.
joeynelson

sì, in realtà ho iniziato con il grepping per l'eliminazione, ma i miei occhi devono essere sorvolati su b / c nessuna delle eliminazioni sembra problematica ... motivo per cui spero che il registro delle query aiuti. grazie a entrambi per il vostro aiuto.
chris1979

Verificare la presenza di eventuali trigger nel database che potrebbero eseguire anche le eliminazioni
Mark Baker

Risposte:


108

Ok, quindi mi sono imbattuto nella risposta.

phpMyAdmin offre una breve cronologia. Se fai clic sull'icona "sql" appena sotto il logo "phpMyAdmin", si aprirà una nuova finestra. Nella nuova finestra, fai clic sulla scheda "Cronologia".

Questo ti darà le ultime venti o giù di lì operazioni SQL.

inserisci qui la descrizione dell'immagine


2
Puoi configurare phpMyadmin per risparmiare di più. Ho la mia configurazione per salvare le ultime 100000 query.
Mixologic

MA ... ogni volta che aggiorni (es: carichi una versione precedente) il tuo database perdi la tua cronologia (quindi non puoi reinstallare un database per controllarne la cronologia)
JinSnow

1
Non registra le modifiche all'indice e sarebbe esattamente utile per quella cosa, dal momento che non le registra correttamente nemmeno quando le esegui ...
o0 '.

56
Non vedo questa icona SQL, dov'è nella versione attuale?
Joseph Astrahan

3
@JosephAstrahan clicca Query windowsull'icona accanto aHome
amallard

63

Nella parte inferiore della schermata SQL (query) è presente una scheda Console . Per impostazione predefinita non è espanso, ma una volta cliccato dovrebbe esporre le schede per Opzioni, Cronologia e Cancella. Fare clic sulla cronologia.

La lunghezza della cronologia delle query viene impostata dalle Impostazioni relative alla pagina che si trovano facendo clic sulla ruota dentata in alto a destra dello schermo.

Questo è corretto per la versione PHP 4.5.1-1


6
La lunghezza è ora sotto Home | Impostazioni | Query SQL | Lunghezza della cronologia delle query . E in modo esasperante "Il valore deve essere uguale o inferiore a 25!"
Bob Stein

38

Devi solo fare clic su console nella parte inferiore dello schermo in phpMyAdmin e otterrai la cronologia eseguita:

inserisci qui la descrizione dell'immagine


Non sono riuscito a trovare la pagina nella risposta accettata (forse è di una versione diversa), e questo ha funzionato per me, grazie.
felwithe

4
Questo mostra solo le query che sono state eseguite dall'utente da phpmyadminse stesso. Non mostra i record completi di tutte le query eseguite.
Fusion

12

Per visualizzare le query passate, esegui semplicemente questa query in phpMyAdmin.

SELECT * FROM `general_log`

se non è abilitato, eseguire le seguenti due query prima di eseguirlo.

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

7
grazie molto utili. a chiunque altro SELECT * FROM general_logdeve essere interrogato nella tabella mysql altrimenti è necessario includere tablename: SELECT * FROM mysql. general_log
siggi_pop

9

Non credo che phpMyAdmin ti permetta di farlo, ma mi piacerebbe sentire che mi sbaglio.

D'altra parte puoi abilitare la registrazione delle query in MySQL: The General Query Log



7

Sto usando phpMyAdmin Server versione: 5.1.41.

Offre la possibilità di visualizzare la cronologia sql attraverso la phpmyadmin.pma_historytabella.

Puoi cercare la tua query in questa tabella.

pma_history la tabella ha la struttura seguente:

inserisci qui la descrizione dell'immagine


3

Devi fare clic sulla finestra della query appena sotto il logo phpMyAdmin, si aprirà una nuova finestra. Basta fare clic sulla scheda Cronologia SQL. Lì puoi vedere la cronologia delle query SQL.


2

Potrei sbagliarmi, ma credo di aver visto un elenco di query SQL precedenti nel file di sessione per le sessioni phpmyadmin


Mi scuso ... Ho letto male la tua domanda: l'elenco nella sessione è l'elenco delle istruzioni precedenti emesse tramite phpmyadmin, quindi non contiene alcuna istruzione SQL emessa dai tuoi script PHP, quindi probabilmente non è così utile.
Mark Baker

1

OK, quindi so di essere un po 'in ritardo e alcune delle risposte precedenti sono ottime.

Un piccolo extra però, mentre in qualsiasi pagina PHPMyAdmin:

  1. Fare clic sulla scheda SQL
  2. Fai clic su "Ottieni query salvata automaticamente"

questo mostrerà quindi l'ultima query inserita.


0

puoi eseguire il tuo mysql passato con run /PATH_PAST_MYSQL/bin/mysqld.exe

esegue il tuo ultimo mysql e puoi vederlo in phpmyadmin e in altre sezioni del tuo sistema.

avviso: interrompi la tua attuale versione di mysql.

SF My English.


0

perché non usi l'esportazione, quindi fai clic sul pulsante di opzione "Personalizzato - visualizza tutte le opzioni possibili", quindi scegli il tuo database, quindi vai su Output e scegli "Visualizza output come testo", scorri verso il basso e vai. Ecco!


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.