【问题标题】:Change entire db's collation and solve illegal mix of collations更改整个数据库的排序规则并解决排序规则的非法混合
【发布时间】:2011-01-25 23:03:41
【问题描述】:

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

这些是我的变量

  • character_set_client utf8
  • character_set_connection utf8
  • character_set_database latin1
  • character_set_filesystem 二进制文件
  • 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
    • 一些表作为带有 utf8_general_ci 的 InnoDB

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

  2. 我猜 DB 设置为 latin1_swedish_ci,所以我也应该更改它。从答案 1) 开始执行该过程将避免 mySql 中的 Illegal mix of colations 错误,对吗?无需更改任何代码行...?

【问题讨论】:

    标签: mysql database utf-8 collation


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-06-27
      • 2012-08-28
      • 2011-03-03
      相关资源
      最近更新 更多