• 티스토리 홈
  • 프로필사진
    31514
  • 방명록
  • 공지사항
  • 태그
  • 블로그 관리
  • 글 작성
31514
  • 프로필사진
    31514
    • 분류 전체보기 (106)
      • Book (66)
        • Learning SQL (9)
        • SQL 레벨업 (8)
        • 견고한 데이터 엔지니어링 (5)
        • 운영체제 (2)
        • 스파크 완벽 가이드 (9)
        • 파이썬 코딩의 기술 (29)
        • 분산 컴퓨팅 (4)
      • 개발 (24)
      • 기타 (10)
        • 출퇴근 공부 간단 정리 (7)
      • ELK (6)
  • 방문자 수
    • 전체:
    • 오늘:
    • 어제:
  • 최근 댓글
      등록된 댓글이 없습니다.
    • 최근 공지
      • 31514의 이전 블로그는 여기로!
      등록된 공지가 없습니다.
    # Home
    # 공지사항
    #
    # 태그
    # 검색결과
    # 방명록
    • 쿼리가 무한 루프에 빠지는 문제
      2024년 09월 19일
      • 31514
      • 작성자
      • 2024.09.19.:10

      상황 및 문제

      나는 다음과 같은 파이썬 코드로 MySQL 테이블을 생성했다.

      import mysql.connector
      
      # MySQL 연결 설정
      mydb = mysql.connector.connect(
          host=*****,
          user=*****,
          password=*****,
          database=*****
      )
      
      # 커서 생성
      mycursor = mydb.cursor()
      
      # 테이블 생성
      mycursor.execute("""
      CREATE TABLE IF NOT EXISTS table (
          ...
      )
      """)

       

      하지만 특정 필드의 이름에 오타가 있다는 사실을 알게 되어 MySQL 서버에 접속하여 DROP TABLE 쿼리문을 실행했지만 무한 루프에 빠지게 되었다.

       

      원인

      MySQL 커넥터는 트랜잭션 기반으로 동작한다. 만약 트랜잭션이 자동 커밋되지 않도록 설정되어 있다면, 커서가 열려 있는 동안 트랜잭션이 완료되지 않았을 수 있다. 이는 테이블에 락을 걸고 DROP TABLE 명령이 무한 대기에 빠지게 만들 수 있다.

       

      해결

      방법 1)

      데이터베이스 연결 시 다음과 같이 autocommit=True를 설정하여 자동 커밋을 활성화한다.

      import mysql.connector
      
      # MySQL 연결 설정
      mydb = mysql.connector.connect(
          host=*****,
          user=*****,
          password=*****,
          database=*****,
          autocommit=True
      )

       

      방법 2)

      트랜잭션을 명시적으로 커밋한다.

      mydb.commit()

      '개발' 카테고리의 다른 글

      [MySQL] DELETE & UPDATE  (0) 2024.10.04
      멀티 프로세싱 & 멀티 스레딩 & 비동기 처리  (0) 2024.10.02
      하둡 기초 개념  (0) 2024.09.30
      새로운 웹 크롤링 도구 Playwright  (0) 2024.09.27
      SQL 사전  (0) 2024.09.10
      다음글
      다음 글이 없습니다.
      이전글
      이전 글이 없습니다.
      댓글
    조회된 결과가 없습니다.
    스킨 업데이트 안내
    현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드 받을 수 있는 페이지로 이동하시겠습니까?
    ("아니오" 를 선택할 시 30일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)
    목차
    표시할 목차가 없습니다.
      • 안녕하세요
      • 감사해요
      • 잘있어요

      티스토리툴바