Commande SQL pour afficher l'historique des requêtes
112
Je voudrais afficher l'historique de mes commandes sql exécutées dans mon navigateur de requêtes MYSQL. Quelle est l'instruction SQL pour afficher l'historique?
enfin pas tous , la suppression se produit pour certains qui contiennent des chaînes comme "mot de passe".
mckenzm
1
Il n'est généralement pas non plus à jour avec votre CLI MySQL ouverte, vous devrez donc probablement utiliser exitMySQL puis lire le fichier.
Joel Mellon
1
Cela ne montre que les commandes exécutées par l'utilisateur qui est connecté.
Christia
1
Comment faire cela dans Windows
ßiansor Å. Ålmerol
Y a-t-il une possibilité que d'autres commandes soient supprimées ou qu'elles ne soient pas ordonnées? Et le journal se met-il à jour automatiquement en temps réel?
Drubio
32
Pour MySQL> 5.1.11 ou MariaDB
SET GLOBAL log_output = 'TABLE';
SET GLOBAL general_log = 'ON';
Jetez un œil à la table mysql.general_log
Si vous souhaitez générer une sortie dans un fichier journal:
SET GLOBAL log_output = "FILE";
SET GLOBAL general_log_file = "/path/to/your/logfile.log"
SET GLOBAL general_log = 'ON';
Comme mentionné par jeffmjack dans les commentaires, ces paramètres seront oubliés avant la prochaine session à moins que vous ne modifiiez les fichiers de configuration (par exemple, éditez /etc/mysql/my.cnf, puis redémarrez pour appliquer les modifications).
Maintenant, si tu veux tu peux tail -f /var/log/mysql/mysql.log
Juste une clarification à ce qui précède: Les commandes copier-coller ici sont pour une seule session de MySQL, par exemple, vous pouvez les saisir à partir de la ligne de commande interactive MySQL. Si vous voulez qu'elles soient une fonctionnalité permanente de votre instance MySQL, vous devez placer ces commandes dans /etc/mysql/my.cnf et redémarrer le service MySQL.
jeffmjack
Notez également que la journalisation s'arrêtera si elle /path/to/your/logfile.logest supprimée, jusqu'à ce que vous exécutiez à SET GLOBAL general_log_file = "/path/to/your/logfile.log";nouveau (ou peut-être redémarrez la session si vous avez modifié la configuration?).
Skippy le Grand Gourou
21
(Linux) Ouvrez votre terminal ctrl+alt+t
exécutez la commande
cat ~/.mysql_history
vous obtiendrez tout l'historique des requêtes mysql précédent en profiter :)
Mais MySQL Query Browser maintient très probablement sa propre liste de requêtes qu'il exécute, en dehors du moteur MySQL. Vous devrez faire de même dans votre application.
Réponses:
essayer
cela vous montrera toutes les commandes mysql exécutées sur le système
la source
exit
MySQL puis lire le fichier.Pour MySQL> 5.1.11 ou MariaDB
SET GLOBAL log_output = 'TABLE';
SET GLOBAL general_log = 'ON';
mysql.general_log
Si vous souhaitez générer une sortie dans un fichier journal:
SET GLOBAL log_output = "FILE";
SET GLOBAL general_log_file = "/path/to/your/logfile.log"
SET GLOBAL general_log = 'ON';
Comme mentionné par jeffmjack dans les commentaires, ces paramètres seront oubliés avant la prochaine session à moins que vous ne modifiiez les fichiers de configuration (par exemple, éditez
/etc/mysql/my.cnf
, puis redémarrez pour appliquer les modifications).Maintenant, si tu veux tu peux
tail -f /var/log/mysql/mysql.log
Plus d'informations ici: Variables système du serveur
la source
/path/to/your/logfile.log
est supprimée, jusqu'à ce que vous exécutiez àSET GLOBAL general_log_file = "/path/to/your/logfile.log";
nouveau (ou peut-être redémarrez la session si vous avez modifié la configuration?).(Linux) Ouvrez votre terminal
ctrl+alt+t
exécutez la commandevous obtiendrez tout l'historique des requêtes mysql précédent en profiter :)
la source
Vous le trouverez là
Vous le rendrez lisible (sans les échappements) comme ceci:
la source
Regardez
~/.myslgui/query-browser/history.xml
ici vous pouvez trouver les dernières requêtes faites avecmysql_query_browser
(quelques jours)la source
Vous pouvez voir l'historique à partir de ~ / .mysql_history. Cependant, le contenu du fichier est encodé par wctomb. Pour afficher le contenu:
shell> chat ~ / .mysql_history | python2.7 -c "import sys; print (''. join ([l.decode ('unicode-escape') pour l dans sys.stdin]))"
Source: vérifier l'historique des requêtes MySQL à partir de la ligne de commande
la source
Vous pouvez consulter le cache de requêtes: http://www.databasejournal.com/features/mysql/article.php/3110171/MySQLs-Query-Cache.htm mais il pourrait ne pas vous donner accès aux requêtes réelles et sera très hit-and-miss si cela a fonctionné (jeu de mots subtil prévu)
Mais MySQL Query Browser maintient très probablement sa propre liste de requêtes qu'il exécute, en dehors du moteur MySQL. Vous devrez faire de même dans votre application.
Edit: voir le commentaire de dan m menant à ceci: Comment afficher les dernières requêtes exécutées sur MySQL? semble solide.
la source