實戰mysql匯出中文亂碼及phpmyadmin匯入中文亂碼

來源:互聯網
上載者:User

因為要把原生gbk編碼的mysql資料庫匯入到虛擬機器主機去,服務商只提供了phpmyadmin供你匯入匯出。一直不用這個phpmyadmin,在本機也是用navicat,總感覺phpmyadmin速度較慢。這回不行了,沒有外掛式主控件,只好用人家給的phpmyadmin了。

第一步:本機資料匯出sql檔案。心想這對於navicat小事一樁。直接在資料庫上右鍵“轉儲sql”(1),嘩嘩,十幾秒的時間匯出成功。

圖1:navicat下對整個資料庫轉sql

用記事本開啟一看,傻眼了。中文全是亂碼。咋回事呢?搜尋了一下,改變什麼串連屬性啥的。不管用。試著在單張表上,轉儲sql,嘿,中文正常。但是82個表,我一個個轉儲我不累死。不行。看來只能棄用我心愛的navicat了。想起有個mysqldump,好試試它。運行-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。開啟看看。嘿可以了。

 

第二步:開啟虛擬機器主機提供的phpmyadmin.匯入選擇檔案ttgbk2.sql.點執行。那個速度,唉。。。一會兒報錯了。在執行lock tables tablename write 時出現access denied錯誤,原來我是虛擬機器主機使用者沒有 lock tables的許可權.開啟sql一看還真有lock tables 選項。沒許可權那就不用這個。到網上一搜說加上--skip-lock-tables,心想不錯,應該是這個“跳過鎖表”嘛

在mysqldump時加上-skip-lock-tables選項,那麼命令列就變成
C:\Documents and Settings\Administrator>mysqldump -uroot -p123 --default-character-set=gbk --skip-lock-tables ttg>ttgbk3.sql.
結果令人失望,還是有lock tables.
後來看了一下mysqldump --help
才明白--skip-lock-tables是用在備份時候不讓讀寫。但是如果你不想讓匯出的帶lock-tables(因為你匯入的時候沒有許可權嘛,呵呵)應該是使用add-locks=false,這是2個概念。正確的如下
C:\Documents and Settings\Administrator>mysqldump -uroot -p123 --default-character-set=gbk ttg --add-locks=false>ttgttg3.sql.

我的版本匯出的在記事本中開啟是asni格式的。

再次到phpmyadmin處匯入。結果是匯入了3個表後報錯。mysql語句報錯。一看中文還亂碼。。。。。接近崩潰。

再找原因。把“MySQL 串連校對”改成gbk-chinese-ci,把language改成中文-chinese simplified(2)。再把匯入時“檔案編碼”改成“gbk”(預設的是utf-8,當然對應的sql檔案的編碼用記事本開啟就是ansi.)(三).再試。。。。

 

 

圖二:修改串連校對及language

 

(圖三:修改檔案的字元集為gbk)

 

終於所有表匯入成功。開啟一個含有中文的表,欄位顯示正常。

2點體會:

1、資料庫編碼歸資料庫編碼。保證串連校對與資料庫編碼一致即可。

2、sql檔案編碼歸檔案編碼。保證匯入時選擇的檔案編碼與資料庫所用編碼一致最好。

這是2個編碼問題。

服了你了mysql.從知道你有這個編碼問題到到現在,你還是這個樣子。這個問題還是讓很多人困惑。啥時候像sqlserver那樣國際化就好了。

 

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.