2013-01-24 104 views
1

上週我在另一個平臺上遷移了我的db。我從phpmyadmin面板執行mysqldump導出,然後使用bigdump腳本將它導入到新平臺中。 我已經進口最初存儲在一個數據庫是在以這種方式設置SQL轉儲文件:MySQL重音字符

MySQL charset: UTF-8 Unicode (utf8) 
MySQL connection collation: utf8_unicode_ci 

我導出數據庫選擇UTF-8字符集,但如果我看的mysqldump文件中的每個表顯示: DEFAULT CHARSET = latin1

現在我遇到了像ò,Î等顯示的重音字母(如à,è,ò,ì)的問題。 爲了管理我的新數據庫,我使用MySQL Workbench,如果我提示: 顯示像'char%'這樣的變量; 我看到所有的值都設置爲utf8。 我該如何解決這個問題?我不是Mysql和db專家!

回答

0

你可以嘗試改變當前字符集表的原文:

alter table TABLE_NAME convert to character set utf8 collate utf8_unicode_ci; 
0

你的表似乎使用的latin1,儘管你提到的UTF8設置。所以你在這裏有幾個選擇:

  1. 把創建的轉儲照原樣並使用latin1連接字符集(不是utf8)發送到服務器。然而,這將創建帶有latin1字符集的表格,因爲它們位於源服務器上。
  2. 如果您有一個可以執行此操作的工具,請將轉儲轉換爲utf-8。不過,您也必須在腳本中更改表格的字符集設置。
  3. 將您的表格轉換爲utf8並再次執行轉儲。
  4. 結合1 + 3,而是轉換您的目標表。如果您無法更改源表,則很有用。

您是否真的嘗試過使用MySQL Workbench將轉儲恢復到您的新服務器?我很確定它應該能夠用latin1編碼的備份來處理這種情況。請參閱服務器管理部分 - >數據導入/恢復。