MySQL ERROR 1118 (42000) 발생시
안녕하세요.
저희 고객분의 요청으로 인해 mysql 4.0 -> mysql 5.5 로의 업그레이드 작업을 위해
운영중인 모든 DB를 db명.sql 로 덤프받아 mysql .5.5 서버에 sql 파일로 하여금 테이블생성 작업을 하고
있는과정에 일부 DB에서 아래와 같은 메시지가 발생합니다. (원본은 모두 MyISAM 방식입니다.)
ERROR 1118 (42000) at line 3727: Row size too large. The maximum row size for the used table type, not counting BLOBs, is 65535. You have to change some columns to TEXT or BLOBs
약 2시간가량 구글검색을 해보았는데 아래와 같은 결과를 찾았지만
====================================================================================
원인 : varchar() 의 선언갯수가 MAX_ROWS 설정값을 초과한 경우에 발생하는 경우가 많다.
[해결]
- MAX_ROWS 값을 늘린다.
- varchar 로 선언된 컬럼을 text 또는 blob 로 변경한다.
====================================================================================
보다 구체적인 방법이 나오질 않아 고민하던 중 테스트용으로 운영하는 서버 (mysql 5.0) 에 문제가 되는
sql 파일을 입력했더니 위와 같은 메시지가 발생하지 않고 정상적으로 덤프파일 내의 모든 테이블 및 데이터가
생성되는 것을 확인하였습니다. 혹시나 환경설정의 차이인가 싶어 show variables 명령어를 5.5 와 5.0 서버에서
모두 실행하고 my.cnf 파일의 옵션등을 비교해보았으나 특별히 차이나는 부분은 발견하지 못하였습니다.
또한 5.0 환경에 정상적으로 입력된 DB자료를 다시 덤프하여 5.5 DB에 입력하면 정상적으로 INSERT가 되는
것을 확인하였습니다. 이런방법으로 최종적으로 5.5 DB에 데이터 이전을 하면 될수 있으나 문제가 되는 DB 계정
갯수만 100개가 넘어가는 상황이라 효율성 측면에서도 문제가 되어 이렇게 글을 남깁니다.
4.0 환경에서 덤프된 파일을 5.5 환경에 입력시 위와 같은 에러 메시지 발생시 짚어봐야할 부분이 어디인지
도움을 부탁드립니다.
감사합니다.
댓글 달기