mysql3升級(jí)到mysql5解決亂碼心得
數(shù)據(jù)庫(kù)的升級(jí)是數(shù)據(jù)庫(kù)發(fā)展的標(biāo)志,代表著數(shù)據(jù)庫(kù)的功能性更為強(qiáng)大,在技術(shù)方面更為先進(jìn),并不是隨意就可以實(shí)現(xiàn)數(shù)據(jù)庫(kù)升級(jí),通常情況下數(shù)據(jù)庫(kù)升級(jí)會(huì)產(chǎn)生亂碼,本文就將為大家講解解決亂碼問(wèn)題的方法。本文就以mysql3升級(jí)到mysql5為例來(lái)分析亂碼問(wèn)題。
我的原數(shù)據(jù)庫(kù)是3.23版本的.前幾天因?yàn)橐粋€(gè)論壇轉(zhuǎn)移.必須用5.1的.于是就是升級(jí)了數(shù)據(jù)庫(kù).論壇是正常的.可以是原來(lái)的一個(gè)老庫(kù)因?yàn)槭?.23下面的.gb2312的.不管怎么樣導(dǎo)入到新庫(kù)都是亂碼.后來(lái)查找了各方面資料.借鑒了discuz的一個(gè)帖子.終于升級(jí)成功.現(xiàn)把心得總結(jié)出來(lái)。
環(huán)境:
1.老庫(kù)是mysql 3.23,新庫(kù)是mysql-5.1.33-win32.msi .數(shù)據(jù)庫(kù)名是 www.cxinbao.com
2.我本機(jī)是xp sp2
首先在本地安裝3.23數(shù)據(jù)庫(kù).把服務(wù)器上的數(shù)據(jù)庫(kù)在data目錄下直接打包到本地.復(fù)制到本地?cái)?shù)據(jù)庫(kù)所在data目錄下.同版本的.或者.4.1以下的版本直接拷貝目錄即可.4.1以下的要轉(zhuǎn)移到4.1及以上版本.則不能直接拷貝.會(huì)涉及到字符集問(wèn)題.只能和mysqldump先導(dǎo)出.再導(dǎo)入.
1.安裝完3.23.然后cmd進(jìn)入數(shù)據(jù)庫(kù)所在bin目錄.然后運(yùn)行 導(dǎo)出數(shù)據(jù)庫(kù)為sql文件
mysqldump -uroot -p --default-character-set=gbk www.cxinbao.com >cxinbao.sql
2.然后原庫(kù)下的表刪除掉.再運(yùn)行.把剛才導(dǎo)出的sql導(dǎo)進(jìn)庫(kù)里.
mysql -uroot -p --default-character-set=latin1 -f www.cxinbao.com <cxinbao.sql
3.再把剛才導(dǎo)入的數(shù)據(jù)庫(kù).再導(dǎo)出為sql,
mysqldump -uroot -p --default-character-set=latin1 www.cxinbao.com >cxinbao.sql
4.在服務(wù)里把3.23的mysql服務(wù)器停止掉.然后安裝mysql5.1數(shù)據(jù)庫(kù).,編碼用utf-8,把mysql3.23數(shù)據(jù)庫(kù)bin目錄下的cxinbao.sql拷貝到mysql5.1數(shù)據(jù)庫(kù)bin目錄下.備用,然后用cmd轉(zhuǎn)到mysql5所在的bin目錄下.運(yùn)行
mysql -uroot -p --default-character-set=gbk -f cxinbaonew<cxinbao.sql
這樣cxinbaonew數(shù)據(jù)庫(kù)就是你轉(zhuǎn)移成功的數(shù)據(jù)庫(kù)了.這個(gè)庫(kù)要事先建好.
這就是我為大家總結(jié)的處理亂碼問(wèn)題,希望對(duì)大家能夠有所幫助。
【編輯推薦】