PYTHON/Error Data

MySQL 오류 : UnicodeDecodeError: 'utf-8' codec can't decode byte ~~ invalid start byte

  • -

[ 오류 코드 ]

Traceback (most recent call last):
      File " ~~ ",
            ok_packet['info_msg'] = op_packet['info_msg'].decode('utf-8')
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xfb in position 38: invalid start byte

또는

mysql.connector.errors.InterfaceError: Failed parsing OK packet.

 

[ 결론 ] 

테이블 또는 데이터베이스의 이름이 utf-8 형식을 지원하지 않아 발생하는 문제로, 인식할 수 있게 변경해주면 된다.

  • Table name : 000020 → s000020
  • DataBase name : 12345 → s12345

 

[ 문제 발생 상황 ]

mysql 내 DB의 각 table 이름을 종목 코드로 지정해두었다. 진짜 여기 저기 자료들을 찾아보던 중 혹시나 싶어서 검색해 본 결과 table 명을 숫자로만 구성하는 사람이 있다는 건 처음 봤다는 댓글을 보고 문득 생각났다.

왜냐하면 table 이름을 숫자로 지정하기 전에는, 종목명으로 테이블을 구축했으며 종목명은 한글로 되어 있었기 때문에 데이터를 불러오는 데에 있어 오류가 발생하게 되어 숫자로 바꾼 것이다.

한 3일 째 오류를 해결하지 못해서 짜증이 만땅이었는데 웬걸, 숫자도 안 될 줄 알았나. 결국 table 명을 숫자로 하긴 하되, 그 앞에 일련의 문자열을 추가하여 제작하기로 했다. 예를 들어 종목 코드가 000020이라면, 그 앞에 i라는 문자열을 추가하며 테이블 명을 i000020으로 설정하는 것이다. 이후 문제 해결!

 

 


728x90
반응형
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.