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

现象

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

结论

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

或者同时指定charset和collation。

原因分析

1.查看官方文档:

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


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

SHOW CHARACTER SET LIKE 'utf8%';
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容