- 論壇徽章:
- 0
|
完美轉(zhuǎn)換MySQL的字符集
MySQL從4.1版本開始才提出字符集的概念,所以對(duì)于MySQL4.0及其以下的版本,他們的字符集都是Latin1的,所以有時(shí)候需要對(duì)mysql的字符集進(jìn)行一下轉(zhuǎn)換,MySQL版本的升
級(jí)、降級(jí),特別是升級(jí)MySQL的版本,為了不讓程序繼續(xù)沿用Latin1字符集之后對(duì)以后Discuz!版本升級(jí)的影響和安裝SupeSite,這就需要我們進(jìn)行字符集的轉(zhuǎn)換!
本人轉(zhuǎn)換過好多數(shù)據(jù)了,也用過了好多的辦法,個(gè)人感覺最好用的就是使用MySQL命令導(dǎo)出導(dǎo)入中將字符集轉(zhuǎn)換過去!
現(xiàn)在我將用圖文并茂的方式向大家展示一下如何將MySQL字符集進(jìn)行轉(zhuǎn)換,由于字符集比較多,現(xiàn)在主要舉GBK和Latin1這兩種字符集之間的轉(zhuǎn)換!
首先我將講解一下如何將MySQL從GBK轉(zhuǎn)換為L(zhǎng)atin1的(如果是UTF8或者BIG5轉(zhuǎn)換即將GBK換成相應(yīng)的字符集即可)!這種問題常發(fā)生在MySQL從MySQL4.1及其以上版本轉(zhuǎn)換為
MySQL4.1以下的版本的過程中!有的人圖個(gè)方便,特別是有主機(jī)權(quán)限的,直接將MySQL的data目錄下的文件拷貝過去了,這樣造成的問題就是亂碼問題!當(dāng)然我所說的這些都要求你必
須擁有主機(jī)權(quán)限,虛擬主機(jī)用戶可以在本地搭建好論壇,下載數(shù)據(jù)到你的本地,然后把數(shù)據(jù)導(dǎo)入到你本地的數(shù)據(jù)庫(kù),然后進(jìn)行字符集的轉(zhuǎn)換!
現(xiàn)在的步驟就是將MySQL的數(shù)據(jù)導(dǎo)出了,在mysql的命令提示符下(linux系統(tǒng)為mysql的命令目錄下),輸入下面導(dǎo)出的命令:
mysqldump -uroot -p --default-character-set=gbk --set-charset=latin1 --compatible=mysql40 --skip-opt discuz>discuz.sql
如圖1(windows下)和圖2(linux下)所示
這樣就輕松的將數(shù)據(jù)從MySQL數(shù)據(jù)庫(kù)中導(dǎo)出了,此時(shí)導(dǎo)出的文件在與mysql命令同級(jí)的目錄下,即bin目錄下,而且已經(jīng)將MySQL字符集導(dǎo)出為L(zhǎng)atin1的了!現(xiàn)在要做的就是將數(shù)據(jù)導(dǎo)
入MySQL4.0中去!
同樣在4.0版本的mysql命令提示符下(linux系統(tǒng)為mysql的命令目錄下),輸入下面導(dǎo)入命令:
mysql -uroot -p --default-character-set=latin1 -f discuzdiscuz.sql
然后導(dǎo)入到MySQL4.1中,輸入下面導(dǎo)入的命令:
mysql -uroot -p --default-character-set=latin1 -f discuzdiscuz.sql
mysql -uroot -p --default-character-set=gbk -f newdiscuz自動(dòng)加上了個(gè)反斜杠造成的!解決此問題的辦法就是打開
備份的sql(這里為discuz.sql),提示錯(cuò)誤的時(shí)候會(huì)提示具體哪行出現(xiàn)了錯(cuò)誤,找到那行,把反斜杠去掉就行了!其實(shí)你可以用Ultraedit這些文本處理的工具,批量的去處理這些反斜杠
本文來自ChinaUnix博客,如果查看原文請(qǐng)點(diǎn):http://blog.chinaunix.net/u/31568/showart_1149756.html |
|