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