提供各種蟲害防治諮詢、專營居家環境消毒清潔
除蟲消毒一通電話服務到家
台北油漆粉刷專業廢棄物清運、大型廢棄家具,政府立案
正派經營,作業快速、合法可靠

首頁  •  j2h 論壇 • 程式設計討論     • 

mysql 4轉移資料到mysql 5

房東:芝芝
發表時間:2006-09-07


http://yblog.org/api/search/?q=utf8
http://www.blueshop.com.tw/board/default.asp

兩台dbms是在不同的主機上,mysql 4基本上是依照default設定值在使用的,也就是預設編碼latin1。mysql 5是依照mysql5設定utf8所設定的my.cnf來使用,其他並沒有啥調整。介面都是使用phpmyadmin2.7.0,資料主要是wordpress所產生的,有中文(全英文好像也沒啥好轉的...)。資料庫名稱為:blog_db。

1.在mysql 4作mysqldump,把資料先從mysql 4抓出來:
mysqldump -u root -p --default-character-set=latin1 blog_db > temp_db.sql

2.sql檔案裡面有一堆奇怪的東西,我不會用參數拿掉,放進去insert又會有問題。所以用笨方法:
cat temp_db.sql grep '^[^/*!]' > blog_db.sql

3.在blog_db.sql設定set names:
請在blog_db.sql檔案的最前一行,插入:set names utf8;。

4.調整create table編碼方式:
將blog_db.sql內所有的CREATE TABLE後的CHARSET=latin1改成:CHARSET=utf8。

5.接下來把blog_db.sql檔案移動到mysql 5的主機:
這個... 大家用想像力...

6.在mysql 5上開啟新的db:blog_db:
如果你不放心預設語系是utf8,在使用phpmyadmin新增的時候,右邊可以選擇校對。請選擇utf8-general-ci。

7.匯入資料:
mysql -u root -p blog_db < blog_db.sql

8.完成!

打開phpmyadmin看看結果是否正常。假設您的phpmyadmin介面使用的是utf8格式的話,這樣您之前使用wordpress輸入的中文資料,應該都可以在mysql 5的phpmyadmin介面下呈現了。網頁介面的set names也使用正確無誤的話(或是my.cnf有調整好),wordpress的網頁也不成問題。不知道mysql 3是不是可以用同樣的方法來轉移,這我可能需要試試看才知道。

另外很多指令都可以透過參數調整後,省略掉一些麻煩。很不幸的是,對於參數我實在不太熟悉,還要花點時間研究研究。再者,這次的轉移的原始資料,還是以utf8為基礎的wordpress所生成的,不知道是不是因為這樣才可以讓這個轉移順利進行。也許我在測試mysql 3的時候,也可以一併測試看看其他資料。

如果有啥錯誤,或是可以更精簡的流程、詳盡的說明,歡迎大家不吝指教!




  • 贊助網站       

    廣利不動產-板橋在地生根最實在--新板特區指名度最高、值得您信賴的好房仲
    完整房訊,房屋、店面熱門精選物件,廣利不動產 優質仲介,房屋租賃、買賣資訊透明,交易真安心!
    廣利不動產-新板特區指名度最高、值得您信賴的好房仲
    您的托付,廣利用心為您服務

  • 1 樓住戶:芝芝
    發表時間:2006-09-07

    [phpmyadmin 2.6 up + mysql 4.0 up] utf-8 亂碼問題解決方法

    很多php愛好者都很喜歡用phpmyadmin來管理mysql的資料,但新版本的charset好像比較複雜了, 以致有人的phpmyadmin在顯示資料時有亂碼的情形(圖:取自[url]www.phpv.net[/url])
    安裝完發生問題後就我一直找解決的辦法, 發現根本沒有完整解決辦法, 所以就用找到的資料了解一下phpmyadmin, mysql的設定來解決.

    問題解決過程
    我一開始在用的時候當在phpmyadmin處理的資料在他本身來看其實是沒有問題的, 然而當用php show出來的時間就會看到好多亂碼, 而在php處理的只在phpmyadmin有問題, 就知道問題只在於phpmyadmin的顯示方式.
    但之後看一看html是utf-8 encode的, 無理由phpmyadmin跟我自己php program, 同樣用utf-8顯示出來會有不同的. 所以便想到問題不是整個php, 也包括mysql的, 那麼在看到phpv.net的一段簡體中文變成亂碼的解決教學中, 想到了, mysql是用latin1為默認的, 而關鍵應該就是phpmyadmin跟mysql mapping的問題了. 再找一下php的設定檔, 終於解決了問題了 ^^"

    解決方法
    大家先在hpmyadmin中的libraries裡開啟select_lang.lib.php, 找一下"$mysql_charset_map", 在那將'utf-8' => 'utf8'改成'utf-8' => 'latin1', 那麼在phpmyadmin中就會使用latin1來做編碼, 在phpmyadmin中便能正常顯示出資料了!

    :::註:::
    這只是我解決問題的小心得, 不代表一定能解決你的問題, 只希望可以讓跟我有同樣問題的朋友能解決問題, 不用downgrade phpmyadmin或mysql -v-"




     共 1 人回應  選擇頁數 【第1 頁】 

    姓名:
    佈告內容:
    其他選項: