I use mediawiki 1.5.6. (RHEL4 mediawiki-1.5.6-15.el4.at.i386.rpm package) I convert my wikidb latin1 to utf8. But I cannot put it into mysql. $mysql -p wikidb < utf8.sql Enter password: ERROR 1071 (42000) at line 1474: Specified key was too long; max key length is 1000 bytes
I found similar post, http://mail.wikimedia.org/pipermail/mediawiki-l/2005-August/006196.html But it does`t help.
detail :
I use CentOS 4.2 + MySQL 4.1.12 + php 4.3.9 + Apache 2.0.52. I upgrade mediawiki 1.4.10 -> 1.5.6. I use 'backward compatible utf8'. It work fine. But it use latin1. My wiki homepage looks like 'utf8' but MySQL DB use latin1 :
mysql>use wikidb; mysql>show variables like 'c%'; +--------------------------+----------------------------+ | Variable_name | Value | +--------------------------+----------------------------+ | character_set_client | latin1 | | character_set_connection | latin1 | | character_set_database | latin1 | | character_set_results | latin1 | | character_set_server | latin1 | | character_set_system | utf8 | | character_sets_dir | /usr/share/mysql/charsets/ | | collation_connection | latin1_swedish_ci | | collation_database | latin1_swedish_ci | | collation_server | latin1_swedish_ci | | concurrent_insert | ON | | connect_timeout | 5 | +--------------------------+----------------------------+
I convert it to utf8. mysqldump --default-character-set=latin1 --add-drop-table --complete-insert -p wikidb > foo.sql vi foo.sql :%s/CHARSET=latin1/CHARSET=utf8/g :%s/latin1_bin/utf8_bin/g :%s/latin1/utf8/g So foo.sql is utf8 file.(i.e. in file editor, I choose file encoding = utf8, it look well.)
I change /etc/my.cnf so mysql use utf8. And restart mysqld, create new db. mysql>DROP DATABASE wikidb; mysql>CREATE DATABASE jihuni DEFAULT CHARACTER SET utf8; mysql>show variables like 'c%'; +--------------------------+----------------------------+ | Variable_name | Value | +--------------------------+----------------------------+ | character_set_client | utf8 | | character_set_connection | utf8 | | character_set_database | utf8 | | character_set_results | utf8 | | character_set_server | utf8 | | character_set_system | utf8 | | character_sets_dir | /usr/share/mysql/charsets/ | | collation_connection | utf8_general_ci | | collation_database | utf8_general_ci | | collation_server | utf8_general_ci | | concurrent_insert | ON | | connect_timeout | 5 | +--------------------------+----------------------------+
But I can not put it into mysql. $mysql -p wikidb < utf8.sql Enter password: ERROR 1071 (42000) at line 1474: Specified key was too long; max key length is 1000 bytes
I also test it using Fedora Core 4+ MySQL 5.0.18 machine, but it doesn`t work, too. $mysql -p wikidb < utf8.sql Enter password: ERROR 1071 (42000) at line 1474: Specified key was too long; max key length is 1000 bytes
wikitech-l@lists.wikimedia.org