2010年1月3日 星期日

SFS3學務系統轉移到另一台機器

程式的部份複製過去沒有問題,但資料庫就有問題了。
在網路上找了好久,終於找到解決的方法,趕快記錄下來。

舊的機器MySQL是5.0版,SFS3資料庫是以BIG5碼安裝,執行
#mysqldump -u[user] -p[password] sfs3 > sfs3.sql
將資料庫備份下來,新的機器是MySQL是5.1版,執行
#mysqladmin -u[user] -p[password] sfs3
建立資料庫,再執行
#mysql -u[user] -p[password] sfs3 < sfs3.sql
還原sfs3資料表,出現錯誤訊息,MySQL不認識BIG5碼。
修改sfs3.sql內容,將DEFAULT CHARSET=big5刪除,
重新再輸入,以預設的UTF8碼建立資料表及資料,
以瀏覽器開啟學務系統,學務系統是以BIG5碼編寫,
資料庫是UTF8碼,讀出來是亂碼,模組圖示也沒有出現。
在網路上查到,從資料庫輸出轉為BIG5的編碼,修改include/config.php
在這行
$CONN->Connect($mysql_host,$mysql_user,$mysql_pass,$mysql_db);
下面加入
mysql_query("SET NAMES 'big5");
mysql_query("SET CHARACTER_SET_CLIENT='big5'");
mysql_query("SET CHARACTER_SET_RESULTS='big5'");
結果還是不行,資料庫似乎不認識BIG5碼。
再查查看,終於查到在安裝MySQL的時候將所有的編碼都安裝進去,
# make WITH_XCHARSET=all WITH_CHARSET=utf8 WITH_COLLATION=utf8_general_ci install
重新安裝完MySQL,終於OK了。