在mysql数据库上修复charset和collat​​ion的最简单方法?

时间:2011-07-06 17:29:59

标签: mysql unicode collation

因为mysql的默认设置不是非常友好的,所以经常会出现一个带有破坏字符集的数据库。

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

对于给定的数据库,哪个是最简单的命令?

警告:不要发布未经测试的脚本的链接,我测试了至少5个(用bash / perl / php / python编写)并且它们都无法修复数据库和表级别正确设置了排序规则的数据库但不是在列级别。

1 个答案:

答案 0 :(得分:1)

我设法自己编写了一个解决方案并发布到:

https://gist.github.com/1068021

注意:

  • mysqldump是borken,即使告诉它不包括CHARSET,如果我设置在列级别,它将包括它们。
  • 此解决方案不假设mysql-server级别的默认字符集,因此它将其设置为数据库级别并将其重置为表级和列级别的默认值。

免费发布错误或补丁,我会尽快解决它们。