• 카테고리

    질문 & 답변
  • 세부 분야

    데이터베이스

  • 해결 여부

    해결됨

크롤링 관련 질문있습니다.

20.03.21 18:16 작성 조회수 110

0

크롤링 관련 강의에서 최종코드란을 실행시키면 아래와 같이 트랜잭션 Timeout Lock이 걸립니다.

DB를 지우고 다시 생성해도 동일하게 발생하는데, 어떤 이유로 인해서 발생하는지 알 수 있나요?

<추가질문> 

아래 해당 코드가 정상 실행됐을때 DB를 확인해보니 데이터가 없는 경우도 있었는데

왜 그런지 알수 있을까요?..

답변 2

·

답변을 작성해보세요.

0

lper11님의 프로필

lper11

질문자

2020.03.22

넵. 답변 감사합니다.ㅜㅜ 혹시 와이파이 환경이라서 발생할 가능성도 있을까요?

0

일단 크롤링은 정상 동작하는 것을 확인하였습니다.

원인은 수강생님의 특정 테이블이나 레코드에 락이 걸려있어서 인듯해요. 해결방법은 터미널 모드로 mysql 터미널 모드로 들어가신 후, 아래와 같이 프로세스들을 확인하고, 의심(?)되는 것을 킬하면 됩니다.

mysql> show processlist; (프로세스 확인)

+----+-----------------+-----------+------+---------+------+------------------------+------------------+

| Id | User            | Host      | db   | Command | Time | State                  | Info             |

+----+-----------------+-----------+------+---------+------+------------------------+------------------+

|  4 | event_scheduler | localhost | NULL | Daemon  |   98 | Waiting on empty queue | NULL             |

| 10 | root            | localhost | NULL | Query   |    0 | starting               | show processlist |

+----+-----------------+-----------+------+---------+------+------------------------+------------------+

2 rows in set (0.00 sec)

mysql> kill 10; (의심되는 아이디 킬하기)

mysql> unlock tables; (모든 테이블 unlock 하기)

하지만, 이런 부분이 어렵다면, mysql을 재실행한 후 실행하면 좋을 것 같습니다.

mysqld restart