본문 바로가기
Database/MYSQL

UFT8MB4 변환시 에러 - Specified key was too long; max key length is 3072 bytes

by 반화넬 2024. 4. 30.
반응형

 

UTF8 -> UTF8MB4 변환시 발생하는 에러중 하나로 아래처럼 변환시 에러가 발생한다.

ALTER TABLE 테이블명 CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

 

# 에러 발생

 [ERROR] /usr/local/libexec/mysqld: Incorrect key file for table '테이블명.MYI'; try to repair it

 

이경우  UTF8MB4 에서는 한 글자당 4바이트이기 때문에 인덱스 최대 사이즈가 달라지기 때문에 발생한다.

4000바이트로 최대값인 3072바이트보다 크기 때문이다.

 

# 해결 방벙

 

> 속성의 크기를 줄인다.

ALTER TABLE 테이블명 DROP PRIMARY KEY, ADD PRIMARY KEY(컬럼1,컬럼2(400))

 

 

반응형