外租空間 mysql 3.23 latin1 轉移資料到本機資料庫mysql 5(用appserve 裝的)奮戰記

Webmasters Discussion
站長們到此分享架站甘苦、管理心得等;歡迎大家多多提出意見喔!
(請勿發表任何跟站長經驗分享不相干的文章,違者砍文)

版主: 版主管理群

回覆文章
alaba
星球普通子民
星球普通子民
文章: 2
註冊時間: 2006-12-17 15:37

外租空間 mysql 3.23 latin1 轉移資料到本機資料庫mysql 5(用appserve 裝的)奮戰記

文章 alaba »

故事開始....希望不要再有人走冤枉路了

緣起:
為了一個專案在網站空間www.webhost4life.com 上架了phpbb2.0.22 utf-8 版,輸入了一些資料和建一些版面,給客戶看看是不是要的樣子

幹嘛這麼辛苦:
後來要做第二段工程,撈一些phpbb的資料出來給flash 的iframe 裡的頁面顯示用,想說那網站反應不快,系統轉回自己家寫好再上傳。

泥巴灘在這裡:
用這二天最新的 appserve 裝好了apache , php(5.2.3) , mysql (5.0以上),phpmyadmin2.10
想說phpbb 都在外面架好了,把程式load 下來,網站設一設,接著把db 從外面用外租空間提供的phpmyadmin 的"輸出" 功能傳回來,再到本機phpmyadmin輸入好了
結果就是長達15小時的奮戰。

閉關自守:
第一次輸入失敗,以為可能是phpmyadmin 首頁上的語言、校對(編碼外租和本機都是不能改的的utf-8 unicode)的組合和選擇不對或是輸入時文字檔編碼的選項不對,試了不少時間,都失敗。
有時輸入完結果網站跟本出不來,才發現是config 資料表裡的servername , script_path 的設定和本機不同,改好了,網站可以看了,但還是亂碼。

己經花了快10 小時當白老鼠了。

向竹貓求救:
去google 找phpbb 來到了竹貓,搜尋亂碼二字,出現一大堆文章,開始過濾那些情況和我相近,方法不一而同
1. phpmyadmin 看不到big5 的字,讓我很難了解到底進db 的東東對不對,後來照建議改了phpmyadmin 裡的/include/database_interface.php
找 
if (PMA_MYSQL_INT_VERSION >= 40100) {
這一段把true邏輯段註解掉就可以了,

神奇的事:
幾次白老鼠輸入測試,居然自phpmyadmin看到是正確的中文字在post_text 裡出現了。但phpbb 就是亂碼,真洩氣。

各種方法都來”橋一下”:
有人說來改db.php 改用set name utf8 之類的,也是失敗。

後來注意到遠端的空間是用mysql 3.23,phpbb 是以latin1編碼,有人說big5 latin1 的db 在舊mysql db 要轉成utf8,用converz 照著轉一次,一樣不行,後來看看
下載的檔案,本身就是utf-8編了,再轉也是枉然。

但開始覺的可能是資料輸出時就有了問題。

也有人說用phpadmin 的allowanywhererecording 功能,但要配合租用空間叫web admin 去做打開php 的iconv功能又要二三天後(且還不一定肯做)。
想想算了。

有人建議在本機重裝好了,重裝後再試過,還是一樣咧。

最後的結果:
有人建議用mysql 的功能dump big5 latin1 的檔案下來,但租用的空間沒法這樣做,只好用租用空間提供的dump 功能(不是phpmyadmin),再去下載回來
,用convertz檢查是個big5 編碼檔案,在本機的 phpmyadmin轉入選項裡選big5格式,成功了,測試phpbb 的發表文章,也正常。

哇咧,這是怎麼一回事,還是搞不太懂,總之,解決了。

感謝竹貓不少先前貼文的大大。
回覆文章

回到「站長交流」