[INSTALL] MediaWiki 설치 시 "Key Length 어쩌구 저쩌구" 에러가 발생한다면..

일단 mysql 을 utf-8 로 사용할 때의 문제입니다. 테스트한 미디어위키는 1.9.3, mysql 은 5.0.23 입니다. 위키미디어의 버그질라에는 이미 올라와 있네요. http://bugzilla.wikimedia.org/show_bug.cgi?id=4445

Creating tables... using MySQL 5 UTF-8 table defs...Query "CREATE TABLE `categorylinks` ( cl_from int(8) unsigned NOT NULL default '0', cl_to varchar(255) binary NOT NULL default '', cl_sortkey varchar(86) binary NOT NULL default '', cl_timestamp timestamp NOT NULL, UNIQUE KEY cl_from (cl_from,cl_to), KEY cl_sortkey (cl_to,cl_sortkey), KEY cl_timestamp (cl_to,cl_timestamp) ) ENGINE=InnoDB, DEFAULT CHARSET=utf8 " failed with error code "Specified key was too long; max key length is 1000 bytes (127.0.0.1)".

참고로 이 메시지는 Experimental MySQL 4.1/5.0 UTF-8 를 선택했을 때 입니다. Backwards-compatible UTF-8 를 선택해도 비슷한 에러가 발생하는데 단지 테이블 선언을 MySQL 4 를 사용한다고 나옵니다.


위와 같은 메시지가 나오면서 설치가 중단되는데, 이유는 mysql 이 key 의 길이를 1000바이트로 제한하기 때문이랍니다. 예전부터 (4.x 시절 혹은 그 이전) 이 이야기가 많았는데, mysql 측에서는 이걸 버그라 보지 않고 "제한"이라고 봐서 당분간은 처리할 용의가 없답니다.

스트립트를 보고 이상하게 생각하실 분들이 있는데, latin-1 에서는 1글자가 1바이트이지만 utf-8 에서는 한글자가 3바이트이기 때문에 그렇답니다.

해결 방법은 테이블 생성 스크립트를 수정해서 각 키필드의 숫자를 작게 한다던가, 키 조합을 변경한다던가 입니다. 그런데 전 그런 방법은 좀 그렇다 싶어, 다음의 방법을 선택했습니다.

 * Experimental MySQL 4.1/5.0 binary

셋업 화면의 맨 아래를 보시면 

MySQL specific options

이 있습니다. 그곳에서 위의 Experimental MySQL 4.1/5.0 binary 선택하신 후 설치를 진행합니다. 뭐 아직 테스트가 다 안되어서 어쩌구 저쩌구란 메시지가 있지만, 저야 워낙 이렇게 밀어붙이는 것을 좋아해서 말이죠. ^^;

트랙백

이 글과 관련된 글 쓰기 (트랙백 보내기)
TrackbackURL : http://classpath.egloos.com/tb/3134245 [도움말]

덧글

덧글 입력 영역


구글애드센스