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
'MySql' 카테고리의 다른 글
MySQL EHost 'ip'는이 MySQL 서버에 연결할 수 없습니다. (0) | 2020.11.10 |
---|---|
MySQL mysqldump 및 특수 문자로 복원합니다. øæåØÆÅ (0) | 2020.11.10 |
MySQL SQLite 대신 MySQL을 사용하여 새로운 Ruby on Rails 애플리케이션 생성 (0) | 2020.11.10 |
MySQL에서 base64 인코딩 (0) | 2020.11.10 |
MySQL zsh : 명령을 찾을 수 없음 : mysql (0) | 2020.11.10 |
댓글