본문 바로가기
MySql

MySQL mysql 변경 innodb_large_prefix

by 베이스 공부 2020. 11. 10.
반응형


create table testtable
(
  id int(10) not null auto_increment,
  firstname varchar(255) collate utf8mb4_german2_ci not null,
  lastname varchar(255) collate utf8mb4_german2_ci not null,
  primary key (id),
  unique key (lastname)
)engine = innodb default charset=utf8mb4, collate=utf8mb4_german2_ci

오류가 발생했습니다 : # 1709-인덱스 열 크기가 너무 큽니다. 최대 열 크기는 767 바이트입니다. 그런 다음 Innodb 에서 767Byte로 제한되는 접두사 제한 에서 비롯된 것으로 나타 났으며 my.cnf 파일에 innodb_large_prefix를 설정하여이 문제를 해결할 수 있습니다. 하지만 파일을 찾을 수 없습니다. / etc / 아래에 있지 않고 / etc / mysql / -폴더가없는 유일한 my.cnf / opt / lampp / etc / 에 있지만 innodb_large_prefix = 1 을 파일에 추가하고 lampp를 다시 시작한 후에 찾았습니다. 나는 여전히 같은 오류가 발생합니다. 내가 뭘 잘못 했어?

edit : SELECT version () 5.6.14 를 반환하므로 innodb_large_prefix 가 지원되어야합니다.

edit2 : 키의 일부만 인덱스로 설정하여 767Byte 미만으로 설정하여이 문제를 해결할 수 있다는 것을 알고 있습니다. 하지만 여기서 mysql을 올바르게 구성하는 방법을 알고 싶습니다.

 

해결 방법

 

5.6.3에서 5.7.7 (즉, MySQL 5.6 또는 MariaDB 10.0을 실행하는 경우) 사이에는 4 단계가 있습니다.

참고

SELECT * FROM information_schema.INNODB_SYS_TABLESPACES;

file_format 및 row_format을 제공합니다. 일부 다른 I_S 테이블은 file_per_table의 단서를 제공합니다.

 

참조 페이지 https://stackoverflow.com/questions/35847015

 

 

반응형

댓글