서버를 다시 시작하지 않고 MySQL 테이블 잠금 해결
'잠금 대기 시간 초과, 트랜잭션 다시 시작' 오류는 서버를 다시 시작해야 하는 것으로 잘못 해석되는 경우가 많습니다. 그러나 이 잠금 문제는 명시적인 트랜잭션이 없어도 발생할 수 있습니다. 근본 원인을 조사하고 영향을 받은 테이블을 해제할 수 있는 솔루션을 제안해 보겠습니다.
이 오류는 MySQL UPDATE
문을 방해하는 잠금을 나타냅니다. 트랜잭션을 시작하지 않더라도 MySQL은 암시적 트랜잭션이나 백그라운드 프로세스로 인해 잠금을 유지할 수 있습니다.
이 문제를 해결하기 위한 직접적인(위험할 수 있는) 방법은 테이블을 강제로 잠금 해제하는 것입니다.
<code class="language-sql">mysql -u your_user -p</code>
<code class="language-sql">mysql> show open tables where in_use > 0;</code>
현재 잠긴 테이블을 표시합니다.
<code class="language-sql">mysql> show processlist;</code>
활성 프로세스를 보여줍니다. 대상 테이블을 잠그는 프로세스를 식별합니다.
<code class="language-sql">mysql> kill <process_id>;</code>
<process_id>
를 잠금 프로세스의 ID로 바꾸세요.
이렇게 하면 테이블이 강제로 잠금 해제되어 UPDATE
문이 활성화됩니다. 결정적으로 이 방법은 데이터 손상의 위험이 있으므로 기본 애플리케이션 문제를 해결하는 동안 임시 수정으로만 사용해야 합니다.
위 내용은 서버를 다시 시작하지 않고 잠긴 MySQL 테이블을 잠금 해제하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!