내 CentOS 시스템에서 어떤 SQL 명령이 실행되고 있는지 확인할 수 있습니까?

내 CentOS 시스템에서 어떤 SQL 명령이 실행되고 있는지 확인할 수 있습니까?

내 CentOS 컴퓨터에서 실행되는 프로그램을 구입했습니다. PHP로 작성되었습니다. MYSQL 데이터베이스를 사용합니다.

프로그램의 기능 중 하나는 새로운 사용자를 등록하는 것입니다. SQL 쿼리를 사용하여 사용자를 추가합니다. 이 데이터베이스에 사용자를 추가할 수도 있는 Python 프로그램을 작성하고 싶지만 어떤 속성과 테이블이 추가되는지 모르겠습니다(꽤 큰 데이터베이스입니다).

이 프로그램이 MYSQL로 보내는 SQL 쿼리를 어떻게든 모니터링할 수 있습니까?

답변1

이를 수행할 수 있는 두 가지 방법이 있습니다. 간단하고(아마도 충분하지 않을 수도 있음) 원하는 것을 100% 제공할 수 있는 더 복잡한 방법입니다.

  1. 더 간단한 것은 명령으로 실행되는 시간에 맞춰 쿼리를 찾는 것입니다 SHOW FULL PROCESSLIST. 그러면 쿼리가 표시되지만 작업(찾고 있는 SQL 쿼리)이 거의 실행되지 않는 경우 원하는 결과를 얻으려면 오랜 시간을 기다려야 하고 위 명령을 자주 실행해야 합니다. 더 좋은 방법도 있습니다.

  2. 로깅이 활성화된 상태에서 MySQL을 시작하면 MySQL 서버를 다시 시작해도 모든 SQL 쿼리를 볼 수 있습니다. 여기서 문제는 로그 파일이 매우 클 수 있고 경험이 없는 사람이 원하는 것을 찾는 데 시간이 많이 걸릴 수 있다는 것입니다. 그러나 일반적으로 이 접근 방식이 더 좋습니다. 옵션은 간단합니다.

mysqld --log=name_of_log_file.log

그렇게 간단합니다.

한 가지 주의 사항: 원하는 것을 찾았으면 MySQL을 다시 시작하십시오. 하지만 이번에는 로깅을 비활성화한 상태에서 그렇게 하면 데이터베이스 속도가 빨라지고 서버의 디스크 공간을 차지하지 않게 됩니다.

답변2

mysql이 있는 모든 플랫폼에서 어떤 MySQL 쿼리가 실행되고 있는지 확인합니다.

MySQL 쿼리는 아래와 같습니다.

  • SHOW FULL PROCESSLIST자세한 정보를 보려면.
  • SHOW PROCESSLIST현재 처리 중인 쿼리에 대한 것입니다.

# mysql터미널에서 엽니다 .

mysql> SHOW FULL PROCESSLIST;

mysql> SHOW PROCESSLIST;

추가 문서를 보려면 다음을 참조하세요.쇼 프로세스 목록.

관련 정보