Comando SQL para mostrar el historial de consultas

Respuestas:

161

tratar

 cat ~/.mysql_history

esto le mostrará todos los comandos mysql que se ejecutaron en el sistema

Maysam Torabi
fuente
2
bueno, no todos , la supresión ocurre para algunos que contienen cadenas como "contraseña".
mckenzm
1
Tampoco suele estar actualizado con su CLI MySQL abierta, por lo que es probable que tenga que exitMySQL y luego leer el archivo.
Joel Mellon
1
Esto solo muestra los comandos ejecutados por el usuario que está conectado.
Christia
1
Cómo hacer esto en windowss
ßiansor Å. Ålmerol
¿Existe la posibilidad de que se supriman otros comandos o que no estén ordenados? Y, ¿el registro se actualiza automáticamente en tiempo real?
Drubio
32

Para MySQL> 5.1.11 o MariaDB

  1. SET GLOBAL log_output = 'TABLE';
  2. SET GLOBAL general_log = 'ON';
  3. Echa un vistazo a la mesa mysql.general_log

Si desea exportar a un archivo de registro:

  1. SET GLOBAL log_output = "FILE";
  2. SET GLOBAL general_log_file = "/path/to/your/logfile.log"
  3. SET GLOBAL general_log = 'ON';

Como lo menciona jeffmjack en los comentarios, estas configuraciones se olvidarán antes de la próxima sesión a menos que edite los archivos de configuración (por ejemplo /etc/mysql/my.cnf, edite , luego reinicie para aplicar los cambios).

Ahora, si quieres puedes tail -f /var/log/mysql/mysql.log

Más información aquí: Variables del sistema del servidor

GTodorov
fuente
3
Solo una aclaración sobre lo anterior: los comandos copiar y pegar aquí son para una sola sesión de MySQL, por ejemplo, puede ingresarlos desde la línea de comandos interactiva de MySQL. Si desea que sean una característica permanente de su instancia de MySQL, debe poner esos comandos en /etc/mysql/my.cnf y reiniciar el servicio MySQL.
jeffmjack
También tenga en cuenta que el registro se detendrá si /path/to/your/logfile.logse elimina, hasta que SET GLOBAL general_log_file = "/path/to/your/logfile.log";vuelva a ejecutar (¿o quizás reinicie la sesión si editó la configuración?).
Skippy le Grand Gourou
21

(Linux) Abra su Terminal, ctrl+alt+t ejecute el comando

 cat ~/.mysql_history

Obtendrá todo el historial de consultas de mysql anterior, disfrute :)

Vamsidhar Muggulla
fuente
18

Lo encontrarás ahí

~/.mysql_history

Lo hará legible (sin los escapes) así:

sed "s/\\\040/ /g" < .mysql_history
DimiDak
fuente
2

Mira ~/.myslgui/query-browser/history.xml aquí puedes encontrar las últimas consultas realizadas con mysql_query_browser (algunos días de antigüedad)

usuario4493696
fuente
-1

Puede ver la caché de consultas: http://www.databasejournal.com/features/mysql/article.php/3110171/MySQLs-Query-Cache.htm pero es posible que no le dé acceso a las consultas reales y será muy acertar y fallar si funcionó (juego de palabras sutil)

Pero es muy probable que MySQL Query Browser mantenga su propia lista de consultas que ejecuta, fuera del motor MySQL. Tendrías que hacer lo mismo en tu aplicación.

Editar: vea el comentario de dan m que conduce a esto: ¿Cómo mostrar las últimas consultas ejecutadas en MySQL? parece sano.

Kieren Johnstone
fuente