작성자 없음
작성자 정보가 삭제된 글입니다.
작성
·
455
0
안녕하세요
요즘 날이 많이 더운데 더위 조심하시구요! 좋은 강의해주셔서 항상 감사드립니다.
오류가 나면 말씀해주신대로 항상 이것저것 살펴보고 해결해보면서 수업을 듣고 있었는데, 이번 것은 좀처럼 해결이 되지 않아 문의 드립니다.
'mysql_advance_with_pymysql' 상에서 최종코드(pymysql + crawling)부분이 실행이 되지 않고있습니다.
passwd와 db만 수정하여 실행시켰는데, 첫번째 결과값만 나오고 그 뒤론 에러가 뜹니다.(첨부 사진 참조)
제일 마지막 오류 문구가 'DataError: (1406, "Data too long for column 'item_code' at row 1")' 입니다.
처음에 item_code에 지정한 길이가 너무 짧아서 생긴것인가 싶어 기존에 작성된 파일을 지우고 다시 sql을 시작해보려고 'Delete table data'(mysql_advance_with_pymysql'파일 안에 있는것)를 실행시키면 이번엔 다음과 같은 오류가 떠서 지워지지도 않는 상황입니다.
OperationalError: (1205, 'Lock wait timeout exceeded; try restarting transaction')
이것저것 따라해보려고 하는데..쉽지 않네요...
확인하시고 답변 부탁드리겠습니다.
답변 2
0
0
안녕하세요. 네 날씨가 덥네요.
일단, 크롤링한 후에, 해당 데이터를 mysql 에 넣는데 문제가 생긴 것 같아요. 이를 확인하셔서, mysql 관련 테이블을 새로 만들려고 하신 부분은 잘 하신것이고요. 저도 테이블에 이미 들어 있는 데이터와 뭔가 문제가 있을 가능성이 있다고 생각했거든요.
그런데 이번에는 삭제를 하려고 했는데, Lock 관련 에러가 뜬것이고요. 이것은 또 다른 문제인데요. 아마~ 크롤링 코드가 에러가 나면서, 관련 mysql 작업이 종료가 안된 상태에서, 다른 작업을 하려니까 뭔가 lock 이 걸린 것 같습니다.
그 부분을 해결하는 것이 만만해보이지는 않아요. mysql 터미널로 들어가셔서 작업을 하셔야 하거든요. 다음 링크의 최하단부를 보시면, kill 명령이 있어요. 해당 명령을 해보시면 좋을 것 같습니다. 저작권 문제가 있으니, 관련 글을 복사해서 넣을수는 없을 것 같고요.
https://www.popit.kr/mysql-lock-%EC%83%81%ED%99%A9-%EB%AC%B8%EC%A0%9C-%ED%95%B4%EA%B2%B0/
이게 힘드시면, 아예 컴퓨터 껐다 켜서 해보시고요. 그래도 안되면, mysql만 종료후 다시 시작해서 해보시고요. 그것도 정 안된다면, 아예 mysql 을 삭제하고, 재설치해서 해보셔도 되긴 할텐데, 삭제/재설치 작업도 생각보다 예상치 못한 문제가 많이 발생해요. 그래서 우선 컴퓨터/mysql 재시작을 해보시면 좋을 것 같고, 그것도 안되면, mysql 터미널모드에서 해당 링크의 명령을 시도해보시면 좋을 것 같습니다.
감사합니다.
해결 하셨나요?