天天看點

mysql 更新引起的亂碼問題,今天終于解決了。。。。

  在google baidu 搜尋出來的結果,千篇一律,都一樣。按照其說明更新,完了後依然是亂碼。

  這幾天,自己研究了下mysql的 mysqldump和source這兩個指令,終于解決了更新亂碼問題。

  好了,接下來說說我是怎麼做的吧。

  我的mysql是4.0要更新到5.0 。資料庫名稱是 bbs

   首先,在服務中停止mysql4.0服務。然後安裝5.0.

   安裝完成後,在mysql4.0的安裝目錄下的 data 目錄中拷貝 bbs 目錄 (也就是bbs資料庫)到mysql5.0的data目錄下。

   然後我們在指令行模式下,進入mysql5.0的安裝目錄下的 bin 目錄,輸入

   mysqldump -u root -p --default-character-set=latin1 bbs >c:/bbsBak.sql

   在這句話中,--default-character-set=latin1 這是 mysqldump指令的一個參數,用來設定編碼的。因為在4.0下,沒有utf8編碼的,預設是 latin1編碼,是以,我們這裡就設定為 latin1 了。 bbs 就是 bbs 資料庫.c:/bbsBak.sql的意思是,把bbs資料庫導出到C槽,存儲為 bbsBak.sql 。

   執行這句話後,提示輸入密碼,也就是 root 的密碼。輸入後,過一會兒,去C槽看看,是不是多了個 bbsBak.sql 的檔案。

    然後,我們打開這個檔案(注意,最好用EditPlus或者其他可以選擇編碼的工具),将裡面所有的 latin1替換為utf8, 再儲存。

    現在,我們再回到指令行模式,輸入 mysqldump -u root -p 回車,輸入正确的密碼後,輸入 drop database bbs; 也就是删除現有的bbs資料庫。

    再下來,我們需要再建立一個 bbs 資料庫,建立的語句是這樣的:create database bbs character set utf8;

    character set utf8;是設定資料庫預設編碼是 utf8.

    建立完成後,我們需要導入剛剛生成的 bbsBak.sql 。語句是這樣的:source c:/bbsBak.sql

    注意,這裡是 / 不是 /

    這樣,就算大功告成了。。。。

   如果有什麼不明白的,留言給我。