programing

MySQL 프로세스 목록을 찾아서 프로세스를 종료하려면 어떻게 해야 합니까?

bestcode 2022. 9. 15. 23:59
반응형

MySQL 프로세스 목록을 찾아서 프로세스를 종료하려면 어떻게 해야 합니까?

일부 쿼리로 인해 MySQL 데이터베이스가 중단됩니다.

프로세스를 찾아서 어떻게 죽일 수 있을까요?

해결책은 다음과 같습니다.

  1. DB 로그인
  2. 명령어 실행show full processlist;데이터베이스 행의 원인이 되는 프로세스 ID 및 쿼리 자체를 취득한다.
  3. 프로세스 ID를 선택하고 명령을 실행합니다.KILL <pid>;그 과정을 죽이기 위해서요.

각 프로세스를 수동으로 종료하는 것만으로는 충분하지 않을 수 있습니다.그러기 위해서는 몇 가지 속임수를 써야 합니다.

  1. MySQL 로그인
  2. 쿼리 실행Select concat('KILL ',id,';') from information_schema.processlist where user='user';모든 프로세스를 인쇄하다KILL명령어
  3. 쿼리 결과 복사, 파이프 붙여넣기 및 제거|서명, 복사 및 쿼리 콘솔에 다시 붙여넣습니다.Enter 키를 누릅니다. 됐다.
select GROUP_CONCAT(stat SEPARATOR ' ') from (select concat('KILL ',id,';') as stat from information_schema.processlist) as stats;

그런 다음 결과를 복사하여 단말기에 다시 붙여넣습니다.예를 들어 다음과 같습니다.

KILL 2871; KILL 2879; KILL 2874; KILL 2872; KILL 2866;

이런 식으로 체크할 수 있습니다.mysql프로세스가 실행 중인지 여부

ps aux | grep mysqld
ps aux | grep mysql

실행 중인 경우 다음 작업을 수행할 수 있습니다.killall사용 방법(현재 실행 중인 모든 프로세스에 따라 다름):

killall -9 mysql
killall -9 mysqld
killall -9 mysqld_safe    

MYSQL 8.xx의 경우 mysqladmin shutdown만 사용할 수 있습니다.이전 버전에서 이 기능이 작동하는지 확실하지 않습니다.

root password가 SomePass인 예

mysqladmin -u root -pSomePass shutdown

또한 /var/log/mysql/error.log에도 셧다운이 표시됩니다.

RDS의 경우:

SELECT
  concat('CALL mysql.rds_kill(',id,');')
  FROM information_schema.processlist
  ORDER BY time;

언급URL : https://stackoverflow.com/questions/44192418/how-to-find-mysql-process-list-and-to-kill-those-processes

반응형