Programing

SHOW PROCESSLIST에서 전체 쿼리를 보는 방법

lottogame 2020. 3. 28. 10:13
반응형

SHOW PROCESSLIST에서 전체 쿼리를 보는 방법


SHOW PROCESSLIST 쿼리를 실행하면 실행중인 SQL 쿼리의 처음 100 자만 정보 열에 반환됩니다.

Mysql 구성을 변경하거나 다른 종류의 요청을 발행하여 완전한 쿼리를 볼 수 있습니까 (보고있는 쿼리가 100자를 초과합니다)


SHOW FULL PROCESSLIST

사용하지 않는 경우 FULL, "각 문장의 처음 100 개 문자가 표시됩니다 Info필드" .

phpMyAdmin을 사용할 때 잘린 결과를 보려면 "전체 텍스트"옵션 (결과 테이블의 왼쪽 상단 모서리에있는 "← T →")을 클릭해야합니다.


Show Processlist는 다른 테이블에서 정보를 가져옵니다. 다음은 데이터를 가져 와서 전체 쿼리가 포함 된 'INFO'열을 보는 방법입니다.

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

요구 사항에 따라 조건을 추가하거나 무시할 수 있습니다.

쿼리 결과는 다음과 같습니다.

+-------+------+-----------------+--------+---------+------+-----------+----------------------------------------------------------+
| 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' |

방금 MySQL 문서 에서 SHOW FULL PROCESSLIST기본적으로 현재 사용자 연결 의 스레드 만 나열 한다는 것을 읽었습니다 .

MySQL SHOW FULL PROCESSLIST 문서에서 인용하십시오.

PROCESS 권한이 있으면 모든 스레드를 볼 수 있습니다.

따라서 테이블 에서 Process_priv열을 활성화 할 수 있습니다 mysql.user. FLUSH PRIVILEGES나중에 실행해야합니다 :)


에 대한 유일한 나쁜 점은 show [full] processlist출력 결과를 필터링 할 수 없다는 것입니다. 반면에, SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST원하지 않는 것을 출력에서 ​​제거 할 수 있는 열린 가능성을 발행 하십시오.

SELECT * from INFORMATION_SCHEMA.PROCESSLIST
WHERE DB = 'somedatabase'
AND COMMAND <> 'Sleep'
AND HOST NOT LIKE '10.164.25.133%' \G

SHOW PROCESSLIST의 전체 쿼리보기 :

SHOW FULL PROCESSLIST;

또는

 SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST;

참고 URL : https://stackoverflow.com/questions/3638689/how-to-see-full-query-from-show-processlist

반응형