亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

實(shí)戰(zhàn)mysql導(dǎo)出中文亂碼及phpmyadmin導(dǎo)入中文亂碼的解決方法

 更新時(shí)間:2010年06月11日 01:05:41   作者:  
因?yàn)橐驯緳C(jī)的gbk編碼的mysql數(shù)據(jù)庫導(dǎo)入到虛擬主機(jī)去,服務(wù)商只提供了phpmyadmin供你導(dǎo)入導(dǎo)出。
一直不用這個(gè)phpmyadmin,在本機(jī)也是用navicat,總感覺phpmyadmin速度較慢。這回不行了,沒有獨(dú)立主機(jī),只好用人家給的phpmyadmin了。

第一步:本地?cái)?shù)據(jù)導(dǎo)出sql文件。心想這對(duì)于navicat小事一樁。直接在數(shù)據(jù)庫上右鍵“轉(zhuǎn)儲(chǔ)sql”(如圖1),嘩嘩,十幾秒的時(shí)間導(dǎo)出成功。

圖1:navicat下對(duì)整個(gè)數(shù)據(jù)庫轉(zhuǎn)sql

用記事本打開一看,傻眼了。中文全是亂碼。咋回事呢?搜索了一下,改變什么連接屬性啥的。不管用。試著在單張表上,轉(zhuǎn)儲(chǔ)sql,嘿,中文正常。但是82個(gè)表,我一個(gè)個(gè)轉(zhuǎn)儲(chǔ)我不累死。不行??磥碇荒軛売梦倚膼鄣膎avicat了。想起有個(gè)mysqldump,好試試它。運(yùn)行-C:\Documents and Settings\Administrator>mysqldump -uroot -p123  ttg>ttgbk2.sql。打開一看,還是亂碼。還不行。唉。。搜索,改成下面的加上指定字符集

C:\Documents and Settings\Administrator>mysqldump -uroot -p123 --default-character-set=gbk ttg>ttgbk2.sql。打開看看。嘿可以了。

 

第二步:打開虛擬主機(jī)提供的phpmyadmin.導(dǎo)入選擇文件ttgbk2.sql.點(diǎn)執(zhí)行。那個(gè)速度,唉。。。一會(huì)兒報(bào)錯(cuò)了。在執(zhí)行l(wèi)ock tables tablename write 時(shí)出現(xiàn)access denied錯(cuò)誤,原來我是虛擬主機(jī)用戶沒有 lock tables的權(quán)限.打開sql一看還真有l(wèi)ock tables 選項(xiàng)。沒權(quán)限那就不用這個(gè)。到網(wǎng)上一搜說加上--skip-lock-tables,心想不錯(cuò),應(yīng)該是這個(gè)“跳過鎖表”嘛

在mysqldump時(shí)加上-skip-lock-tables選項(xiàng),那么命令行就變成
C:\Documents and Settings\Administrator>mysqldump -uroot -p123 --default-character-set=gbk --skip-lock-tables ttg>ttgbk3.sql.
結(jié)果令人失望,還是有l(wèi)ock tables.
后來看了一下mysqldump --help
才明白--skip-lock-tables是用在備份時(shí)候不讓讀寫。但是如果你不想讓導(dǎo)出的帶lock-tables(因?yàn)槟銓?dǎo)入的時(shí)候沒有權(quán)限嘛,呵呵)應(yīng)該是使用add-locks=false,這是2個(gè)概念。正確的如下
C:\Documents and Settings\Administrator>mysqldump -uroot -p123 --default-character-set=gbk ttg --add-locks=false>ttgttg3.sql.

我的版本導(dǎo)出的在記事本中打開是asni格式的。

再次到phpmyadmin處導(dǎo)入。結(jié)果是導(dǎo)入了3個(gè)表后報(bào)錯(cuò)。mysql語句報(bào)錯(cuò)。一看中文還亂碼。。。。。接近崩潰。

再找原因。把“MySQL 連接校對(duì)”改成gbk-chinese-ci,把language改成中文-chinese simplified(如圖2)。再把導(dǎo)入時(shí)“文件編碼”改成“gbk”(默認(rèn)的是utf-8,當(dāng)然對(duì)應(yīng)的sql文件的編碼用記事本打開就是ansi.)(如圖三).再試。。。。

 

 

圖二:修改連接校對(duì)及l(fā)anguage

 

(圖三:修改文件的字符集為gbk)

 

終于所有表導(dǎo)入成功。打開一個(gè)含有中文的表,字段顯示正常。

2點(diǎn)體會(huì):

1、數(shù)據(jù)庫編碼歸數(shù)據(jù)庫編碼。保證連接校對(duì)與數(shù)據(jù)庫編碼一致即可。

2、sql文件編碼歸文件編碼。保證導(dǎo)入時(shí)選擇的文件編碼與數(shù)據(jù)庫所用編碼一致最好。

這是2個(gè)編碼問題。

服了你了mysql.從知道你有這個(gè)編碼問題到到現(xiàn)在,你還是這個(gè)樣子。這個(gè)問題還是讓很多人困惑。啥時(shí)候像sqlserver那樣國(guó)際化就好了。

相關(guān)文章

最新評(píng)論