因為MySQL 4.1對utf8的支援較完整
但也在版本轉換上產生編碼的問題
昨天經過一番的測試後是解決了編碼問題
但是卻發生restore不完全的狀況
會出現bus erros (core dumped)的錯誤訊息
於是回去檢查了一下sql
花了一小時的時間去修正table中一些跳脫字元的問題
但還是無解
今天又重新在別的機器上作了測試
因為有前輩指出core dumped這個訊息可能不是資料本身有問題
(而且編輯器上的顏色不一定準)
於是找了另一台機器
再安裝一次MySQL 4.1.15進行測試
發現幾乎是可以正常restore
但是又有新問題了
因為MySQL 4.1要對各table指定連線校對
因此必須在從MySQL 4.0 dump出來的sql檔中加入一些敘述
才能讓MySQL 4.1知道你的資料庫的正常編碼為何
所以我在sql檔開頭的部份加入
代碼: 選擇全部
SET NAMES utf8;
SET CHARACTER_SET_CLIENT=utf8;
SET CHARACTER_SET_RESULTS=utf8;
但是卻出現Duplicate entry的問題
指有一個不能重覆資料的資料意圖輸入資料庫
但是奇怪的是
若我不修改sql檔而直接restore至MySQL 4.1
動作是OK的
但編碼是錯的(當然)
所以必須要加入上述的述敘才行
可是加了又會出狀況
唉…
還真是惱人呀
再研究看看