彰安資訊組

« 八月 2010 »
一 二 三 四 五 六 日
            1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31          
六月
29

從MySQL4.0升級至5.0。

Linux系統及指令集 | david | 六月 29, 2009,09:06

從MySQL4.0升級至5.0。

首先把資料dump出來 。由於先前用4.0時我的資料是存成latin1,不管是Big5或是wordpress的UTF-8存進去後都是變成lantin1,所以dump出來後要用iconf或piconf把他轉成UTF-8,記得dump出來時要加上 --default-character-set=latin1。

如果原先是Big5的資料,像我的Coppermine Photo Gallery,dump出來後就直接把Big5轉成UTF-8即可

#mysqldump -u帳號 -p 資料庫 > output.sql  --default-character-set=latin1
#piconv -f big5 -t utf8 output.sql >utf8.sql

如果原先是UTF-8的資料,像是wordpress,dump出來後要先轉成Big5後,再把他轉成UTF-8,因為原先dump出來的是偽裝成UTF-8的lantin1不是真正的UTF-8

#mysqldump -u帳號 -p  資料庫 >output.sql --default-character-set=latin1
#piconv -f utf8 -t big5 output.sql > big5.sql
#piconv -f big5 -t utf8 big5.sql >utf8.sql

接著MySQL5.0灌好後,MySQL的my.cnf設定檔內要加入以下設定

[client]
default-character-set=utf8
[mysqld]
default-character-set=utf8
default-collation=utf8_general_ci

但也有看到資料說[mysqld]那邊加上 default-character-set=utf8跟 default-collation=utf8_general_ci後,一些舊的使用Big5編碼的php程式,又沒有加入連資料庫時指定的編碼方式的相關code的話,那些程式就會爛掉,所以目前我是沒有加上那兩行。
接著建立空的資料庫準備把dump出來的資料import進去,SQL語法應該類似下面這樣,要加上


DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci

CREATE DATABASE `abc` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

我是用phpMyAdmin建立資料庫的,建立時”校對”要選utf8_general_ci

再來就是把剛剛dump出來後的sql檔在import進去了,這裡有兩點要注意的。
1.剛剛dump出來的sql檔如果原先是Big5里面會有一些像是許功蓋這些字後面會多了一個”\“,記得用文字編輯器把他消掉
2.import進去時記得還要先修改一下dump出來的sql檔,在最前面加上

SET NAMES utf8;
SET CHARACTER_SET_CLIENT=utf8;
SET CHARACTER_SET_RESULTS=utf8;

再來把每個資料表後面的

TYPE=MyISAM;
改成
ENGINE=MyISAM DEFAULT CHARSET=utf8;
--------------------------------------------------------------
引用:
使用 vi 時...可以使用取代的語法..將全部 latin1 的字眼全部改為 utf8
:1,$ s/latin1/utf8/g
--------------------------------------------------------------
都改好後就可以把他import進去了


--------------------------------------------------------------
引用:
#mysql -u帳號 -p 資料庫 < utf8.sql --default-character-set=utf8

--------------------------------------------------------------

不過以上實在有點麻煩,所以我把多餘的”/“消掉後,就直接用phpMyAdmin把他import進去了,import時記得文字編碼檔案要選utf8即可
順便記一下寫php時如是配合UTF-8的資料庫的話該注意,在真正送出query前要先加入以下三行

mysql_query(”SET NAMES ‘utf8‘”);
mysql_query(”SET CHARACTER_SET_CLIENT=utf8“);
mysql_query(”SET CHARACTER_SET_RESULTS=utf8“);

檢查語系的SQL語法
show variables like “%character%”;

本文From: http://blog.leolo.cc/2006/02/06/134/
參考 : http://a-wei.net/archives/4

下一篇 | 上一篇 | 引用 (0)

站內搜尋
近期文章
  • Ubuntu的網路卡設定
  • lifetype的mysql取代語法以及移機修改
  • sql統計語法
  • lifetype簡潔網址設定及使用者修改模版
  • 無線D-Link中華電信PoE
  • linux新硬碟加Label名稱
  • XP之使用者禁止安裝功能
  • 修改開機選單
  • 製作usb開機 for Dos XPE
  • 從MySQL4.0升級至5.0。
文章分類
  • 免費服務 [1]
  • LifeType [6]
  • Ubuntu問題集 [2]
  • 微軟系統指令集 [7]
  • 學務系統 [11]
  • 工作主機及系統 [17]
  • Linux系統及指令集 [9]
  • 防駭防毒 [8]
  • 防火牆及安全監控 [5]
  • I-Chip [3]
文章彙整
  • 五月 2010 [1]
  • 四月 2010 [3]
  • 三月 2010 [1]
  • 二月 2010 [1]
  • 九月 2009 [1]
  • 八月 2009 [1]
  • 七月 2009 [1]
  • 六月 2009 [1]
  • 五月 2009 [1]
  • 四月 2009 [1]
  • 三月 2009 [1]
  • 二月 2009 [4]
  • 元月 2009 [1]
  • 十月 2008 [1]
  • 九月 2008 [1]
  • 八月 2008 [2]
  • 七月 2008 [2]
  • 五月 2008 [4]
  • 三月 2008 [1]
  • 二月 2008 [4]
  • 元月 2008 [1]
  • 十二月 2007 [6]
  • 十一月 2007 [3]
  • 十月 2007 [4]
  • 九月 2007 [3]
  • 八月 2007 [8]
  • 七月 2007 [5]
  • 六月 2007 [6]
我的連結
網管教學
  • 彰化縣自由軟體交流網:
  • 自由軟技術支援:
  • 自由軟體技術交流:
  • 正體中文XOOPS:
  • X學務系統:
  • 歐展嘉教學網:
  • Linux中文延伸:
  • 酷!學園: 酷!學園
  • 網管人:
  • 二林網管:
  • SMF討論區:
系統管理
  • IPv6測試網:
  • 微軟TechNET:
  • 台灣網路資訊中心:
養生養慧
  • 中醫典籍資料庫:
  • 大為知識區: 大為知識區
  • E中醫:
  • 東川堂:
  • 岐黃醫林:
  • (個)養生養慧:
應用軟體
  • 綠色工廠:
  • SFSForge:
  • LifeType中文: LifeType中文
部落格專區
  • 大為知識區:
  • 阿欣部落格:
  • 管理者介面:
選單
  • 主頁面
  • 文章彙整
  • 資料夾
  • 管理介面
新聞交換
  • RSS 0.90
  • RSS 1.0
  • RSS 2.0
  • Atom
 
Copyright@2007. Reic's Place. All rights reserved. Powered by Lifetype.
Designed by Dieter Schneider, CssTemplateHeaven. Ported to Lifetype by Reic Wang.