Mysql中字符集和排序规则的设置

现象

上线时sql报错,表链接时collation不一致导致无法保存。

结论

先上结论:线上创建数据库表时,可以不指定chaset和collation,则使用数据库默认的chaset和collation,目前线上默认是utf8mb4和utf8mb4_unicode_ci;

或者同时指定charset和collation。

原因分析

1.查看官方文档:

Mysql中字符集和排序规则的设置_第1张图片

2.查看线上数据库的创建语句,线上数据库默认使用的charset是utf8mb4,排序方式是utf8mb4_unicode_ci


Mysql中字符集和排序规则的设置_第2张图片

3.查看utf8的默认collation,可以看到如果指定了charset而没有制动clooation,会使用默认的utf8mb4_general_ci作为排序方式而不会使用数据库的默认排序方式。

SHOW CHARACTER SET LIKE 'utf8%';

你可能感兴趣的:(Mysql中字符集和排序规则的设置)