Last modified: 2011-03-13 18:05:38 UTC
1.5.8 -> 1.6.3 upgrade fails (clean ungzipped, running web installer). Using PHP 4.3.9 and mysql 4.0.13. * There are already MediaWiki tables in this database. Checking if updates are needed... ...hitcounter table already exists. ...querycache table already exists. ...objectcache table already exists. ...categorylinks table already exists. ...logging table already exists. ...validate table already exists. ...user_newtalk table already exists. ...transcache table already exists. ...trackbacks table already exists. Creating externallinks table...Query "CREATE TABLE `externallinks` ( el_from int(8) unsigned NOT NULL default '0', el_to blob NOT NULL default '', el_index blob NOT NULL default '', KEY (el_from, el_to(40)), KEY (el_to(60), el_from), KEY (el_index(60)) ) TYPE=InnoDB " failed with error code "BLOB column 'el_to' can't be used in key specification with the used table type (xxx)".
BLOB and TEXT indexes for InnoDB tables have been added in mysql 4.0.14 (18 july 2003). You should upgrade mysql to at least 4.0.14. References: http://dev.mysql.com/doc/refman/4.1/en/news-4-0-14.html (paragraph 4) http://dev.mysql.com/doc/refman/4.1/en/indexes.html (paragraph 3) I am adding a note in 1.6 release notes ( r14027 )
Forported in trunk ( r14028 ) Thanks for the bug report.
I ran into the exact same issue, but I had Msql 5.0.27 installed. The solution in my case was to run Mysql in 'non-strict table' mode. Here is a link described the solution: http://drupal.org/node/93123 (look at update #3) "This is a result of MySQL running in "strict" mode. See http://dev.mysql.com/doc/refman/5.0/en/server-sql-mode.html for details. Basically, you need to remove STRICT_TRANS_TABLES from sql_mode variable. You can do that in your overall configuration file, when you start mysql, or per session by executing SET SQL_MODE = '' (you may add any attributes you actually need, see above link.)