更改整个数据库的排序规则并解决非法混合排序规则

时间:2010-03-10 15:27:07

标签: mysql database utf-8 collation

在mySQL中执行LIKE''查询时遇到问题

这些是我的变量

  • character_set_client utf8
  • character_set_connection utf8
  • character_set_database latin1
  • character_set_filesystem binary
  • character_set_results utf8
  • character_set_server latin1
  • character_set_system utf8
  • character_sets_dir C:\ xampp \ mysql \ share \ charsets \
  1. 如何更改数据库归类?还有桌子?我有:

    • 一些表格为MyISAM,含latin1_swedish_ci
    • 一些表格为InnoDB,带有utf8_general_ci

    我想我应该用utf8_general_ci转换每个表InnoDB

  2. 我猜数据库设置为latin1_swedish_ci所以我也应该更改它。从答案1)开始的过程将避免mySql中的非法混合排序错误吗?不改变任何代码行......?

1 个答案:

答案 0 :(得分:2)

无论您使用哪种引擎,都可以将字符集和归类设置为utf8_general_ci。因此,如果您不需要,无需将MyISAM更改为InnoDB,您只需更改排序规则即可。

每列设置字符集和排序规则。您可以整体更改表格,但这确实会改变每一列。请记住,表上设置的字符集和排序规则实际上只是新列的默认设置,而数据库上设置的字符集和排序规则只是新表的默认设置。

最后,您正确地将客户端,连接和结果字符集都设置为utf8。这是必不可少的,否则MySQL将转码进出。确保您的客户端代码在设置数据库连接时显式设置这些代码。