2010-09-03 9 views
191

Cuando publico la consulta SHOW PROCESSLIST, solo se muestran los primeros 100 caracteres de la consulta SQL en ejecución en la columna de información.Cómo ver la consulta completa de SHOW PROCESSLIST

¿Es posible cambiar de configuración de MySQL o emitir un tipo diferente de solicitud de consulta para ver completa (las consultas que estoy viendo son más de 100 caracteres)

Respuesta

334
SHOW FULL PROCESSLIST 

Si no se utiliza FULL , "only the first 100 characters of each statement are shown in the Info field".

Al usar phpMyAdmin, también debe hacer clic en la opción "Textos completos" ("← T →" en la esquina superior izquierda de la tabla de resultados) para ver los resultados no truncados.

+2

Parece phpmyadmin no se preocupa por esto, y aún muestra la información truncada. – giorgio79

+0

@ giorgio79: Si recuerdo correctamente, phpMyAdmin trunca todos los resultados de cadena. Han pasado cuatro años desde que hice algún desarrollo web, así que podría estar muy equivocado. –

+5

+1 para la nota de phpMyAdmin. – Cyntech

8

acabo de leer en el MySQL documentation que SHOW FULL PROCESSLIST por defecto sólo se enumeran los hilos de su conexión de usuario actual.

Presupuesto de la documentación de MySQL espectáculo lleno PROCESSLIST:

Si usted tiene el privilegio proceso, se puede ver todos los temas.

Así que usted puede habilitar la columna Process_priv en su mesa mysql.user. Recuerde que debe ejecutar FLUSH PRIVILEGES después :)

-26

esta solución funcionó para mí:

  • terminal abierto y la conexión con el servidor MySQL
  • nueva terminal abierta y reinicie el servicio mysqld (no cierres primera terminal)
  • en la primera ejecución "parada esclavo" terminal de
  • en la primera ejecución del terminal "esclavo empezar"
  • verá maestro/servidor comenzará a trabajar bien con ningún error
+5

Esto no se trata de implementaciones de sql multinodo. – sjas

32

Show Processlist obtiene la información de otra tabla. Aquí es cómo se puede extraer los datos y buscar en la columna 'INFO', que contiene toda la consulta:

select * from INFORMATION_SCHEMA.PROCESSLIST where db = 'somedb'; 

Usted puede añadir cualquier condición o ignorar la base de su requisito.

El resultado de la consulta es llevado como:

+-------+------+-----------------+--------+---------+------+-----------+----------------------------------------------------------+ 
| ID | USER | HOST   | DB  | COMMAND | TIME | STATE  | INFO              | 
+-------+------+-----------------+--------+---------+------+-----------+----------------------------------------------------------+ 
|  5 | ssss | localhost:41060 | somedb | Sleep | 3 |   | NULL              | 
| 58169 | root | localhost  | somedb | Query | 0 | executing | select * from sometable where tblColumnName = 'someName' | 
+4

Esta es probablemente la respuesta más útil. – dr01

+0

Mi columna de información muestra 'COMMIT'. ¿Sabes cómo puedo ver más detalles sobre la consulta real? –

Cuestiones relacionadas