[DreamHost] MySQL 4.1 纏鬥篇

昨天花了一整天的時間在把主機資料庫及 PHP 程式的部份搬到 DreamHost 去。


由於 DreamHost 的 PHP 並沒有 iconv 及 mbstring 的 function ,但是有提供自行安裝 PHP 5 的步驟

安裝前記得 Quota 一定要先設大一點,裝好之後 iconv 跟 mbstring 都有了,這樣需要 iconv 的程式才能正常執行。

再來最麻煩的部份是 MySQL 4.1,因為 MySQL 4.1 的資料編碼已經不再支援 Big5 ,只能用連線校對的方式,但是這樣對 Porting 並沒有幫助,只好手工做些修正。

目前我先處理 UTF-8 的部份,以 MovableType 為例,先用 mysqldump 原來主機上的資料給拿出來:

mysqldump --opt -hlocalhost -uroot -p mt > mt.sql

再來把 mt.sql 傳到 DreamHost 上去,準備做匯入的動作。

在匯入前要先注意的是「不要把連線校對改為 utf8 字元集」(如 utf8_general_ci),只要用預設的 latin1_swedish_ci 就可以了。這個部份因為我手賤先改了,結果讀資料庫出來卻是一堆 ? 問號。
(如下圖所示)

20050528_01.gif

DreamHost 上的 mysql 連線指令已經很貼心的寫在他們的畫面上,所以照貼就可以了,並加入紅字的部份匯入資料庫就可以了。

mysql -u neo -p -h mt.neo.com.tw mt   <  mt.sql

這時匯入後再看畫面就是正常的,而且程式完全不用改。

20050528_03.gif

但是付出的代價就是「phpMyAdmin 看到的字全部都是亂碼」。

20050528_02.gif

關於這點,phpMyAdmin 亂碼的暫時替代解決方案請看下一篇

2017 全新 RWD 版面

網站換新版型

6 comments On [DreamHost] MySQL 4.1 纏鬥篇

  • 哇 ~ 真是太感謝了 …
    剛好在移機到 DreamHost 的時候也遇到這樣子的問題
    謝謝 Neo 提供解決方案 … 😀

  • 目前我也是從自行架設的linux主機,把mt轉到外租的host去,新的主機也是mysql4.1,我使用mt的匯出功能,匯入新的host之後卻發生部分中文變亂碼,奇怪的是’許功蓋’都正常,反而像’勝’、’理’等字變成其他字,不像DreamHost用sql連線,不知是否可以建議有什麼解決方案,謝謝。

  • 先檢查 MT 匯出的時候是不是「勝」、「理」就已經變其它字了。

  • 您說 MySQL 4.1 的資料編碼已經不再支援 Big5

    小弟認為是支援的, 因為不論是 MS-Windows 或 Linux 平台
    小弟自己管理的主機, 都可以在 phpMyAdmin 下看到正常的繁體中文字
    但是目前 DreamHost 小弟做不到

  • 大大,小弟還是有些問題,就是還原起來會出現
    /includes/functions.php on line 3319

    這個是什麼意思?
    我用的版本是vbb3.54

  • 如果要匯出資料庫的話:
    mysqldump –opt -hlocalhost -uXXX -p –default-character-set=latin1 dbname > db.sql

    再用 Editplus 這類的編輯器選 utf8 編碼就能看到原始資料了。

    若想更改為正確的 utf8 再匯入mysql,記得要把 sql 檔案內的 /*!40101 SET NAMES latin1 */; 的 latin1 改為 utf8。

Leave a reply:

Your email address will not be published.

Site Footer

Sliding Sidebar