2010-03-10 38 views
0

的非法搭配我在mySQL中更改整個數據庫的整理和解決歸類

做LIKE'查詢時出現問題,這些都是我的變量

  • character_set_client字符UTF8
  • 是character_set_connection UTF8
  • character_set_database latin1
  • character_set_filesystem binary
  • cha racter_set_results UTF8
  • 被character_set_server LATIN1
  • character_set_system UTF8
  • character_sets_dir C:\ XAMPP的\ mysql的\共享\字符集\
  1. 我怎麼能更改數據庫的排序規則?和桌子?我有:

    • 一些表與latin1_swedish_ci
    • 一些表爲InnoDB的具有utf8_general_ci的MyISAM

    我想我應該每個表InnoDB的轉換與utf8_general_ci

  2. 我猜DB設置到latin1_swedish_ci,所以我應該改變這一點。從答案1)做的過程將避免mySql權限中排序規則錯誤的非法混合?沒有改變任何代碼行...?

回答

2

無論您使用哪種引擎,字符集和排序規則都可以設置爲utf8_general_ci。所以,如果你不需要改變MyISAM到InnoDB,你可以改變排序規則。

字符集和排序規則按列設置。您可以將表格作爲一個整體進行修改,但這確實會改變每一列。請記住,在表上設置的字符集和排序規則實際上只是新列的默認設置,而對數據庫設置的字符集和排序規則只是新表的默認值。

最後,您正確地將客戶端,連接和結果字符集都設置爲utf8。這是必不可少的,否則MySQL將轉碼進入或退出。確保您的客戶端代碼在設置數據庫連接時明確設置這些代碼。