[MySQL] 프로세스 확인과 프로세스 죽이기

2022. 9. 30. 10:56·MySQL

 

MySQL Workbench를 통해 스키마를 수정하거나, 조회를 할 때 종종 이런 에러가 발생한다.

Error Code: 2013. Lost connection to MySQL server during query

원인은 2가지 정도로 보인다.

  • `쿼리 수행 시간`이 `제한 시간`보다 초과되서 강제로 연결이 끊어짐
  • 특정 쿼리에서 `교착상태`가 발생

 

이번 글은 `교착상태`가 원인일 때 해결하는 방법이다.

 

프로세스 확인

show processlist;

쿼리 실행 결과.

여기서 팁스토리님의 글을 참고하여, 각 컬럼의 뜻을 보자.

ID : 클라이언트의 프로세스 ID (스레드 번호)
USER : 프로세스와 관련된 사용자 이름 (스레드에 접속하고 있는 MySQL 유저명)
HOST : 클라이언트가 연결된 호스트 (유저가 접속하고 있는 호스트명 및 IP주소)
DB : 프로세스의 기본 데이터베이스 (기본값이 없으면 NULL)
COMMAND : 명령 유형 (스레드 명령 값 참조)
TIME : 프로세스가 현재 상태에 있었던 동작 시간 (초)
STATE : 스레드 상태 (스레드 상태 참조)
INFO : 실행중인 명령문(SQL) *최대 100자까지 표시됨, 전부 표시하려면 SHOW FULL PROCESSLIST; 사용
PROGRESS : 프로세스의 총 진행률 (0-100 %) (진행률 보고 참조)

(추가) 프로세스 실시간 LOCK 확인

SELECT * FROM information_schema.INNODB_TRX;

위의 쿼리를 실행하면 현재 어떤 쿼리가 실행 중이고 LOCK 상태인지 확인할 수 있다.

LOCK 상태인 프로세스 id 를 찾으려면 "trx_mysql_thread_id" 컬럼에 있는 값을 보면된다.

프로세스 죽이기

# KILL [죽일 프로세스 아이디];

# 사용 예시
kill 94031;

# 만약 AWS RDS를 사용중이라면 아래의 명령어를 사용한다.
call mysql.rds_kill(94031);

글을 마치며

특정 프로세스들을 죽이는 행위는 임시 방편으로 급할 때만 사용한다.

근본 원인을 해결하기 위해서, 왜 이런 문제가 발생했는지 확인해야한다.

'MySQL' 카테고리의 다른 글

[스터디] Real MySQL 8.0 1권 - 5장 트랜잭션과 잠금 정리  (0) 2024.09.23
[MySQL] INSERT 할 때, 마지막 PK 값에서 1씩 증가시키는 방법  (1) 2023.04.27
[MySQL] AUTO_INCREMENT 초기화하는 방법  (1) 2023.04.27
[MySQL] 테이블 내 중복 데이터 삭제  (0) 2023.04.27
[MySQL] 계정 조회, 계정 생성, 계정 삭제, 권한 조회, 권한 부여, 권한 삭제  (0) 2022.09.30
'MySQL' 카테고리의 다른 글
  • [MySQL] INSERT 할 때, 마지막 PK 값에서 1씩 증가시키는 방법
  • [MySQL] AUTO_INCREMENT 초기화하는 방법
  • [MySQL] 테이블 내 중복 데이터 삭제
  • [MySQL] 계정 조회, 계정 생성, 계정 삭제, 권한 조회, 권한 부여, 권한 삭제
옐리yelly
옐리yelly
전시회에서 도슨트를 따라다니며 작품 해설을 들으면 더 재밌었던 기억들이 있습니다. 글로 더 재밌는 개발이 되도록 노력하고 있습니다.
  • 옐리yelly
    개발 갤러리
    옐리yelly
  • 전체
    오늘
    어제
    • 모든 글 보기 (82)
      • Project (22)
      • Java (4)
      • Spring (6)
      • Kubernetes (6)
      • Docker (2)
      • JPA (2)
      • Querydsl (2)
      • MySQL (8)
      • ElasticSearch (7)
      • DevOps (4)
      • Message Broker (3)
      • Git & GitHub (2)
      • Svelte (1)
      • Python (8)
        • Python Distilled (4)
        • Anaconda (1)
        • Django (0)
        • pandas (3)
      • Algorithm (1)
      • Computer Science (0)
      • 내 생각 (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    JPA
    devops
    pandas
    OOP
    커넥션 풀
    MySQL
    Python
    Message Broker
    dataframe
    비사이드
    gitops
    svelte
    blue-green 배포
    elasticsearch
    포텐데이
    프로젝트
    Spring
    argocd
    ncloud
    성능 테스트
    querydsl
    예약 시스템
    데드락
    리팩토링
    RabbitMQ
    pymysql
    nks
    docker
    k8s
    Project
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
옐리yelly
[MySQL] 프로세스 확인과 프로세스 죽이기
상단으로

티스토리툴바