Existe-t-il un moyen d'afficher les requêtes mysql passées avec phpmyadmin?


113

J'essaye de localiser un bug qui supprime des lignes dans une mysqltable.

Pour la vie de moi, je ne peux pas le retrouver dans mon PHPcode, donc j'aimerais travailler à rebours en trouvant la requête mysql qui supprime les lignes.

Je me suis connecté à phpmyadmin, mais je ne trouve pas de moyen d'afficher l'historique des opérations SQL passées.

Existe-t-il un moyen de les afficher dans phpmyadmin?


2
Ne pouvez-vous pas rechercher dans votre code des DELETEinstructions et déboguer de cette façon?
webbiedave

Écoutez Baol et Webbiedave. Vous devez activer la journalisation des requêtes pour voir ce qui se passe, mais vous devez toujours trouver d'où proviennent les instructions SQL dans votre code. Démarrer grep pour « supprimer », il ne peut être que de nombreuses déclarations de suppression de votre projet.
joeynelson le

oui, j'ai en fait commencé par demander la suppression, mais mes yeux doivent être passés sous silence car aucune des suppressions ne semble problématique ... c'est pourquoi j'espère que le journal des requêtes aidera. merci à vous deux pour votre aide.
chris1979

Recherchez tous les déclencheurs dans votre base de données qui pourraient également effectuer les suppressions
Mark Baker

Réponses:


107

Ok, donc je suis tombé sur la réponse.

phpMyAdmin offre un bref historique. Si vous cliquez sur l'icône 'sql' juste en dessous du logo 'phpMyAdmin', une nouvelle fenêtre s'ouvrira. Dans la nouvelle fenêtre, cliquez simplement sur l'onglet «historique».

Cela vous donnera les vingt dernières opérations SQL.

entrez la description de l'image ici


2
Vous pouvez configurer phpMyadmin pour économiser davantage. J'ai la configuration mienne pour enregistrer les 100000 dernières requêtes.
Mixologic

MAIS ... chaque fois que vous mettez à jour (par exemple: chargez une version précédente) votre base de données, vous perdez votre historique (vous ne pouvez donc pas réinstaller une base de données pour vérifier son historique)
JinSnow

1
N'enregistre pas les changements d'index, et ce serait exactement utile pour cette chose, car il ne les enregistre pas correctement lorsque vous les exécutez non plus…
o0 '.

57
Je ne vois pas cette icône SQL, où est-elle dans la version actuelle?
Joseph Astrahan

3
@JosephAstrahan cliquez sur l' Query windowicône à côté deHome
amallard

64

Il y a un onglet Console au bas de l' écran SQL (requête). Par défaut, il n'est pas développé, mais une fois cliqué dessus, il devrait exposer des onglets pour Options, Historique et Effacer. Cliquez sur l'historique.

La longueur de l'historique des requêtes est définie à partir des paramètres liés à la page qui se trouvent en cliquant sur la roue dentée en haut à droite de l'écran.

Ceci est correct pour la version 4.5.1-1 de PHP


6
La longueur est maintenant sous Accueil | Paramètres | Requêtes SQL | Durée de l'historique des requêtes . Et exaspérante "La valeur doit être égale ou inférieure à 25!"
Bob Stein

39

Il vous suffit de cliquer sur la console en bas de l'écran dans phpMyAdmin et vous obtiendrez l'historique exécuté:

entrez la description de l'image ici


Je n'ai pas pu trouver la page dans la réponse acceptée (peut-être qu'elle provient d'une version différente), et cela a fonctionné pour moi, merci.
felwithe

4
Cela n'affiche que les requêtes exécutées par l'utilisateur à partir de phpmyadminlui-même. Il ne montre pas les enregistrements complets de toutes les requêtes effectuées.
Fusion

12

Pour afficher les requêtes précédentes, exécutez simplement cette requête dans phpMyAdmin.

SELECT * FROM `general_log`

s'il n'est pas activé, exécutez les deux requêtes suivantes avant de l'exécuter.

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

7
merci très utile. à n'importe qui d'autre SELECT * FROM general_logdoit être interrogé dans la table mysql sinon vous devez inclure le nom de la table: SELECT * FROM mysql. general_log
siggi_pop


8

Oui, vous pouvez enregistrer les requêtes dans une table DB phpMyAdmin spéciale.

Voir SQL_history .


Cela complète la réponse donnée ci-dessus par @Dhinakar.
Meetai.com

7

J'utilise la version du serveur phpMyAdmin: 5.1.41.

Il offre la possibilité de visualiser l'historique SQL à travers la phpmyadmin.pma_historytable.

Vous pouvez rechercher votre requête dans ce tableau.

pma_history le tableau a la structure ci-dessous:

entrez la description de l'image ici


3

Vous devez cliquer sur la fenêtre de requête juste en dessous du logo phpMyAdmin, une nouvelle fenêtre s'ouvrira. Cliquez simplement sur l'onglet Historique SQL. Là, vous pouvez voir l'historique des requêtes SQL.


2

Je me trompe peut-être, mais je crois avoir vu une liste des requêtes SQL précédentes dans le fichier de session pour les sessions phpmyadmin


Toutes mes excuses ... J'ai mal lu votre question: la liste en session est la liste des déclarations précédentes émises via phpmyadmin, donc elle ne contient aucune instruction SQL émise par vos propres scripts PHP, donc probablement pas si utile.
Mark Baker

1

OK, je sais que je suis un peu en retard et que certaines des réponses ci-dessus sont excellentes.

Comme petit plus, dans n'importe quelle page PHPMyAdmin:

  1. Cliquez sur l'onglet SQL
  2. Cliquez sur "Obtenir la requête enregistrée automatiquement"

cela affichera alors votre dernière requête saisie.


0

vous pouvez exécuter votre ancien mysql avec run /PATH_PAST_MYSQL/bin/mysqld.exe

il exécute votre dernier mysql et vous pouvez le voir dans phpmyadmin et dans une autre section de votre système.

remarque: arrêtez votre version actuelle de mysql.

SF Mon anglais.


0

pourquoi n'utilisez-vous pas l'exportation, puis cliquez sur le bouton radio «Personnalisé - afficher toutes les options possibles», puis choisissez votre base de données, puis allez dans Sortie et choisissez «Afficher la sortie sous forme de texte», faites défiler vers le bas et Allez. Voila!


En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.