묻고답하기
page_full_width" class="col-xs-12" |cond="$__Context->page_full_width">
MySQL 6 사용 불가?
2008.07.29 17:20
MySQL6에서 설치를 했는데
이런 query가 여럿 있는데, 그러니까 module을 key값을 쓰는데 이게 250 char이란 말이죠. 그런데 MySQL 6.0을 기점으로 Unicode가 조금 더 달라집니다. 즉 이전에 (원래 ZBXE에서 쓰던) utf8은 utf8mb3으로 바뀌고 (1 char에 3 bytes) utf8이란 이름으로 1 char에 4 bytes 짜리가 들어왔습니다.
계속 로그인에 실패하더군요.
이렇게 저렇게 찾아보니 이런 문제가 있었습니다.
Query Failed : 1071
Specified key was too long; max key length is 767 bytes
Query Failed : 1062
Duplicate entry 'dispModuleAdminContent' for key 'idx_foward'
create table `xe_module_config` (`module` varchar(250) not null ,`config` text ,`regdate` varchar(14), primary key (`module`)) ENGINE = INNODB CHARACTER SET utf8 COLLATE utf8_general_ci;
이런 query가 여럿 있는데, 그러니까 module을 key값을 쓰는데 이게 250 char이란 말이죠. 그런데 MySQL 6.0을 기점으로 Unicode가 조금 더 달라집니다. 즉 이전에 (원래 ZBXE에서 쓰던) utf8은 utf8mb3으로 바뀌고 (1 char에 3 bytes) utf8이란 이름으로 1 char에 4 bytes 짜리가 들어왔습니다.
그런데 key값으로 쓸 수 있는 컬럼의 길이는 767 bytes가 최고값이라서 제대로 create가 안되었습니다.
Duplicate 문제는 확인은 잘 못했네요..
MySQL의 버전에 따라서 utf8과 utf8mb3을 구분해서 사용 하실 것인지
아니면 767 bytes라는 limit을 변경할 수 있는지
아니면 250의 varchar을 다른 경우(?)로 바꾸실지
제로보드 정책을 결정(?)하시는 분들이 정해야될거같네요 :)