본문 바로가기
데이터베이스/Mysql

MySQL mysql Index column size too large the maximum column size is 767 bytes.

by 초이MS 2020. 6. 3.

상황

  • mysql Index column size too large the maximum column size is 767 bytes. 와 같은 에러 메시지가 나온다.
  • 인덱스 사이즈가 너무 커서 발생하는 문제이다.

해결방안

  1. MySQL my.cnf 파일 찾기를 참고하여 my.cnf파일을 찾는다.
  2. my.cnf 파일의 내용을 다음과 같이 수정한다.
    [mysqld]
    ...
    innodb_file_format=barracuda
    innodb_large_prefix=on
    innodb_file_per_table=on
    ...
  3. 추후 테이블을 생성시 ROW_FORMAT=DYNAMIC 를 추가한다.
    CREATE TABLE `task_fail` (
    `id` int(11) NOT NULL AUTO_INCREMENT,
    `task_id` varchar(250) NOT NULL,
    `dag_id` varchar(250) NOT NULL,
    `execution_date` timestamp(6) NOT NULL,
    `start_date` timestamp(6) NULL DEFAULT NULL,
    `end_date` timestamp(6) NULL DEFAULT NULL,
    `duration` int(11) DEFAULT NULL,
    PRIMARY KEY (`id`),
    KEY `idx_task_fail_dag_task_date` (`dag_id`,`task_id`,`execution_date`)
    ) ENGINE=InnoDB AUTO_INCREMENT=592 DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC;

참고

반응형

'데이터베이스 > Mysql' 카테고리의 다른 글

MySQL database character set 변경  (0) 2020.06.03
MySQL my.cnf 파일찾기  (0) 2020.06.03
MySQL port번호 확인  (0) 2020.06.03

댓글