這篇有 提過因為 mysql5.1.7 beta吃了一點小苦頭,而這個問題也同樣發生在 mediawiki 的 CREATE TABLE 的 sql 檔上面。一開始是一度懷疑是不是因為我自己白目去抓 mediawiki 的 svn (自以為以後升級比較方便,可是從 FCU 抓那邊真的是他 X 的慢...)所以爛掉,後來從 ports 裝也是相同的情形,可是現在 mysql 上面又跑幾個東西再上面了,要再 downgrade 其實也可說是頗麻煩,於是就很任命的開始找。一開始看到 Syntax error 大概有個底,照上次經驗把 TYPE 清光光大概就會動。不過後來就很莫名其妙了。
一開始發生 index key 不能 > 1000 bytes 的情形,可是怎麼看都莫名其妙,後來 google 到說原來 utf8 會比較機車,於是就開始 try and error 慢慢調整。之後遇到
A database error has occurred Query: SET NAMES utf8
然後卡關卡好久後才發現原來是因為我一開始就在 my.cnf 設了
init_connect = 'SET NAMES UTF8;'
然後 mediawiki 又自己做了一次,所以不知道該算是誰的錯?解法是把 include/Database.php Line 310 那附近的 $this->query( 'SET NAMES utf8' ); 給幹掉,然後就天下大平了。
如果有需要的可以拿我亂改的 sql 檔蓋到 /maintenance/mysql5/ 底下的 tables.sql,不過爆炸不負責就是。這裡下載。
剛測試了一下, 現在好像沒有> 1000 bytes 的問題了.
回覆刪除MediaWiki 1.6.6 + MySQL 5.0.22, 安裝時選擇 Experimental MySQL 4.1/5.0 UTF-8.