-
카테고리
-
세부 분야
데이터베이스
-
해결 여부
해결됨
크롤링 관련 질문있습니다.
20.03.21 18:16 작성 조회수 110
0
크롤링 관련 강의에서 최종코드란을 실행시키면 아래와 같이 트랜잭션 Timeout Lock이 걸립니다.
DB를 지우고 다시 생성해도 동일하게 발생하는데, 어떤 이유로 인해서 발생하는지 알 수 있나요?
<추가질문>
아래 해당 코드가 정상 실행됐을때 DB를 확인해보니 데이터가 없는 경우도 있었는데
왜 그런지 알수 있을까요?..
답변을 작성해보세요.
0
0
잔재미코딩 DaveLee
지식공유자2020.03.22
일단 크롤링은 정상 동작하는 것을 확인하였습니다.
원인은 수강생님의 특정 테이블이나 레코드에 락이 걸려있어서 인듯해요. 해결방법은 터미널 모드로 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
답변 2