網頁

2006年5月10日 星期三

mediawiki + mysql5.1 beta

剛剛在裝 mediawiki ,本來理論上 make install clean 就能搞定的東西裝了好久。我還笑著跟把妹揚說,搞不好他那裡下去打 make install clean 會直接 ok 也說不定。(把妹楊最近被惡魔化了,雖然他本來就是壞人,不過被惡魔化倒應該是頭一遭。他lab裡的機器現在是 FreeBSD 6 喔!嘿嘿)。原因是因為之前手賤然後現在就遇到很多神秘的問題。

這篇有 提過因為 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,不過爆炸不負責就是。這裡下載