2011-07-06 31 views
1

由於mysql的默認設置不太適合Unicode,所以最終可能會發生數據庫崩潰的情況。最簡單的方法來修復mysql數據庫上的字符集和排序規則?

通常你只是想重新配置它使用utf8字符集和utf8_unicode_ci整理。

對於給定的數據庫,這是最簡單的命令嗎?

警告:請勿將鏈接發佈到未經測試的腳本,我測試了至少5個(用bash/perl/php/python編寫),並且它們都無法修復數據庫和表格中排序正確設置的數據庫級別但不是列級別。

+0

您是否正在尋找腳本來更改表格和列歸類,或者您是否還需要修復數據? – GolezTrol

+0

你只是想把每個'* TEXT'和'* CHAR'列的字符集/排序規則更改爲'utf8' /'utf8_unicode_ci'嗎? –

+0

目前我會假設數據可以正確轉換爲UTF8,這意味着數據庫文本內容不會被損壞。 – sorin

回答

1

我好不容易寫一個解決自己併發布到:

https://gist.github.com/1068021

注:

  • mysqldump是博肯,即使告訴它不包括字符集,如果將它們包括我在列級設置。
  • 此解決方案在mysql-server級別不採用默認字符集,因此將其設置爲數據庫級別並將其重置爲表和列級別的默認值。

免費發佈bug或補丁,我會盡力快速解決它們。

相關問題